Desidero utilizzare più valori per singoli parametri per creare o aggiornare uno stack da un modello AWS CloudFormation.
Risoluzione
Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Per utilizzare più valori per singoli parametri in un modello CloudFormation, completa una delle seguenti azioni:
Utilizza tipi di parametri specifici per AWS
Nota: CloudFormation convalida il valore di input selezionato rispetto ai valori esistenti nell'account.
Nei seguenti esempi di modelli CloudFormation, il parametro con la chiave SecurityGroups indica un tipo di parametro specifico per 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, esegui il comando AWS CLI create-stack:
aws cloudformation create-stack --stack-name StackName --template-body file://TemplateFileName
--parameters ParameterKey=SecurityGroups,ParameterValue="sg-0123456789\,sg-2345678901"
Nota: sostituisci StackName con il nome del tuo stack e TemplateFileName con il nome del tuo file. Per ParameterValue, inserisci l'ID del tuo gruppo di sicurezza.
Utilizza i tipi di parametri CommaDelimitedList
Nei seguenti esempi di modelli CloudFormation, il parametro con la chiave SecurityGroups indica 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