Come posso utilizzare più valori per singoli parametri in un modello AWS CloudFormation?

3 minuti di lettura
0

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

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa