Desidero creare o aggiornare uno stack da un modello di AWS CloudFormation utilizzando più valori per singoli parametri.
Breve descrizione
È possibile passare più valori per singoli parametri in un modello AWS CloudFormation in uno dei seguenti modi:
Soluzione
Usa tipi di parametri specifici di AWS per selezionare valori da un elenco precompilato di valori AWS esistenti da un account AWS
Importante: AWS CloudFormation convalida il valore di input selezionato rispetto ai valori esistenti nel tuo account.
In questi esempi di modelli AWS CloudFormation, il parametro con la chiave SecurityGroups indica un tipo di parametro specifico di AWS che può accettare più valori per SecurityGroupIds.
Modello JSON:
{
"AWSTemplateFormatVersion": "2010-09-09",
"Parameters": {
"SecurityGroups": {
"Type": "List<AWS::EC2::SecurityGroup::Id>",
"Description": "The list of SecurityGroupIds in your Virtual Private Cloud (VPC)"
}
},
"Resources": {
"MyEC2Instance": {
"Type": "AWS::EC2::Instance",
"Properties": {
"ImageId": "ami-79fd7eee",
"KeyName": "testkey",
"SecurityGroupIds": {
"Ref": "SecurityGroups"
}
}
}
}
}
Modello YAML:
AWSTemplateFormatVersion: 2010-09-09
Parameters:
SecurityGroups:
Type: 'List<AWS::EC2::SecurityGroup::Id>'
Description: The list of SecurityGroupIds in your Virtual Private Cloud (VPC)
Resources:
MyEC2Instance:
Type: 'AWS::EC2::Instance'
Properties:
ImageId: ami-79fd7eee
KeyName: testkey
SecurityGroupIds: !Ref SecurityGroups
Per distribuire lo stack utilizzando l'interfaccia a riga di comando di AWS, utilizza il seguente comando:
Nota: sostituisci StackName con il nome del tuo stack. Sostituisci TemplateFileName con il nome del tuo file. Per ParameterValue, inserisci l'ID del tuo gruppo di sicurezza.
aws cloudformation create-stack --stack-name StackName --template-body file://TemplateFileName
--parameters ParameterKey=SecurityGroups,ParameterValue="sg-0123456789\,sg-2345678901"
Utilizza i tipi di parametro CommaDelimitedList per inserire valori di input
Nei seguenti esempi di modelli AWS CloudFormation, il parametro con la chiave SecurityGroups specifica un tipo CommaDelimitedList che può accettare più valori per SecurityGroupIds.
Modello JSON:
{
"AWSTemplateFormatVersion": "2010-09-09",
"Parameters": {
"SecurityGroups": {
"Type": "CommaDelimitedList",
"Description": "The list of SecurityGroupIds in your Virtual Private Cloud (VPC)",
"Default": "sg-a123fd85, sg-b456ge94"
}
},
"Resources": {
"MyEC2Instance": {
"Type": "AWS::EC2::Instance",
"Properties": {
"ImageId": "ami-79fd7eee",
"KeyName": "testkey",
"SecurityGroupIds": {
"Ref": "SecurityGroups"
}
}
}
}
}
Modello YAML:
AWSTemplateFormatVersion: 2010-09-09
Parameters:
SecurityGroups:
Type: CommaDelimitedList
Description: The list of SecurityGroupIds in your Virtual Private Cloud (VPC)
Default: sg-a123fd85, sg-b456ge94
Resources:
MyEC2Instance:
Type: 'AWS::EC2::Instance'
Properties:
ImageId: ami-79fd7eee
KeyName: testkey
SecurityGroupIds: !Ref SecurityGroups