Wie kann ich mehrere Werte für einzelne Parameter in einer AWS CloudFormation-Vorlage verwenden?

Lesedauer: 2 Minute
0

Ich möchte einen Stack aus einer AWS CloudFormation-Vorlage erstellen oder aktualisieren und dabei mehrere Werte für einzelne Parameter verwenden.

Kurzbeschreibung

Sie können mehrere Werte für einzelne Parameter in einer AWS CloudFormation-Vorlage auf eine der folgenden Arten übergeben:

Behebung

Verwenden Sie AWS-spezifische Parametertypen, um Werte aus einer vorab vorausgefüllten Liste vorhandener AWS-Werte aus einem AWS-Konto auszuwählen

**Wichtig:**AWS CloudFormation validiert den von Ihnen ausgewählten Eingabewert in Ihrem Konto anhand vorhandener Werte.

In diesen AWS CloudFormation-Beispielvorlagen gibt der Parameter mit dem Schlüssel SecurityGroupseinen AWS-spezifischen Parametertyp an, der mehrere Werte für SecurityGroupIDs akzeptieren kann.

JSON-Vorlage:

{
  "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"
        }
      }
    }
  }
}

YAML-Vorlage:

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

Um den Stack mit der AWS CLI bereitzustellen, verwenden Sie den folgenden Befehl:

**Hinweis:**Ersetzen Sie StackName durch den Namen Ihres Stacks. Ersetzen Sie TemplateFileName durch den Namen Ihrer Datei. Geben Sie bei ParameterValuee Ihre Sicherheitsgruppen-ID ein.

aws cloudformation create-stack --stack-name StackName --template-body file://TemplateFileName
--parameters ParameterKey=SecurityGroups,ParameterValue="sg-0123456789\,sg-2345678901"

Verwenden Sie CommaDelimitedList-Parametertypen zur Eingabe von Eingabewerten

In den folgenden AWS CloudFormation-Vorlagenbeispielen gibt der Parameter mit dem SchlüsselSecurityGroups einen CommadeLimitedList-Typ an, der mehrere Werte für SecurityGroupIDs annehmen kann.

JSON-Vorlage:

{
  "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"
        }
      }
    }
  }
}

YAML-Vorlage:

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 OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr