Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
Wie übertrage ich CommaDelimitedList-Parameter an verschachtelte Stacks in AWS CloudFormation?
Ich möchte CommaDelimitedList-Parameter an verschachtelte Stacks in AWS CloudFormation übertragen.
Kurzbeschreibung
Sie können keine Werte des Typs CommaDelimitedList an einen verschachtelten Stacks übertragen. Verwenden Sie stattdessen die intrinsische Funktion Fn::Join in Ihrem übergeordneten Stack, um den Typ CommaDelimitedList in den Typ String zu konvertieren.
Lösung
Das folgende Beispiel zeigt, wie Sie eine Liste von SecurityGroupIds von einem übergeordneten Stack an einen verschachtelten Stack übertragen.
1.Öffnen Sie die JSON- oder YAML-Datei Ihres übergeordneten Stacks und setzen Sie dann den Typ von SecurityGroupIds auf CommaDelimitedList.
Im Abschnitt Ressourcen der JSON-Datei gibt die Funktion Fn::Join die kombinierte Zeichenfolge zurück. Im Abschnitt Ressourcen der YAML-Datei gibt die Funktion !Join die kombinierte Zeichenfolge zurück. Sowohl in JSON- als auch in YAML-Dateien konvertiert die kombinierte Zeichenfolge den Parametertyp SecurityGroupIds von CommaDelimitedList zu String.
Beispiel für eine übergeordnete JSON-Datei:
{ "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { "SubnetId": { "Type": "AWS::EC2::Subnet::Id" }, "SecurityGroupIds": { "Type": "List<AWS::EC2::SecurityGroup::Id>" }, "KeyName": { "Type": "AWS::EC2::KeyPair::KeyName" }, "ImageId": { "Type": "String" } }, "Resources": { "Instance": { "Type": "AWS::CloudFormation::Stack", "Properties": { "TemplateURL": "https://s3.amazonaws.com/cloudformation-templates-us-east-2/nested.yml", "Parameters": { "SubnetId": { "Ref": "SubnetId" }, "SecurityGroupIds": { "Fn::Join": [ ",", { "Ref": "SecurityGroupIds" } ] }, "KeyName": { "Ref": "KeyName" }, "ImageId": { "Ref": "ImageId" } } } } } }
Beispiel für eine übergeordnete YAML-Datei:
AWSTemplateFormatVersion: 2010-09-09 Parameters: SubnetId: Type: 'AWS::EC2::Subnet::Id' SecurityGroupIds: Type: 'List<AWS::EC2::SecurityGroup::Id>' KeyName: Type: 'AWS::EC2::KeyPair::KeyName' ImageId: Type: String Resources: Instance: Type: 'AWS::CloudFormation::Stack' Properties: TemplateURL: 'https://s3.amazonaws.com/cloudformation-templates-us-east-2/nested.yml' Parameters: SubnetId: !Ref SubnetId SecurityGroupIds: !Join - ',' - !Ref SecurityGroupIds KeyName: !Ref KeyName ImageId: !Ref ImageId
Hinweis: Wenn Sie zwei Subnetze übertragen, z. B. [„subnet-aaaa, subnet-bbbb“], ist die Ausgabe von Fn::Join {"subnet-aaaa, subnet-bbbb"}.
2.Legen Sie in der JSON- oder YAML-Datei Ihres verschachtelten Stacks den Typ der SecurityGroupIds auf CommaDelimitedList fest.
Beispiel für eine verschachtelte JSON-Datei:
{ "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { "SubnetId": { "Type": "String" }, "SecurityGroupIds": { "Type": "CommaDelimitedList" }, "KeyName": { "Type": "String" }, "ImageId": { "Type": "String" } }, "Resources": { "Ec2instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": { "Ref": "ImageId" }, "KeyName": { "Ref": "KeyName" }, "SecurityGroupIds": { "Ref": "SecurityGroupIds" }, "SubnetId": { "Ref": "SubnetId" } } } } }
Beispiel für eine verschachtelte YAML-Datei:
AWSTemplateFormatVersion: 2010-09-09 Parameters: SubnetId: Type: String SecurityGroupIds: Type: CommaDelimitedList KeyName: Type: String ImageId: Type: String Resources: Ec2instance: Type: 'AWS::EC2::Instance' Properties: ImageId: !Ref ImageId KeyName: !Ref KeyName SecurityGroupIds: !Ref SecurityGroupIds SubnetId: !Ref SubnetId
Hinweis: Im verschachtelten Stack wird die kombinierte Zeichenfolge aus dem übergeordneten Stack an SecurityGroupIds als CommaDelimitedList übertragen. Zum Beispiel wird der Wert {"sg-aaaaa, sg-bbbbb"} zu [„sg-aaaaa“, „sg-bbbbb“] zurück konvertiert. Daher muss SecurityGroupIds direkt von SecurityGroupIds: !Ref SecurityGroupIds referenziert werden, statt als Liste von Zeichenketten.
Ähnliche Informationen

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 3 Jahren