0

durchsucht alle google durch und fand keine Antwort ... Oder nur teilweise ohne echtes Beispiel.Parameter in verschachtelten Stapeln auf Amazon

Hier ist mein Stack:

{ 
    "Resources": { 
    "NestedStack": { 
     "Type": "AWS::CloudFormation::Stack", 
     "Properties": { 
     "TemplateURL": "https://xyz/json.template", 
     "Parameters" : { 
      "Sg1" : { "Ref": "Sg1"}, 
      "Sg2" : { "Ref": "Sg2"} 
     }, 
    "DependsOn": ["Sg1","Sg2"] 
    }, 
    "Sg1": { 
    "Type": "AWS_EC2_SecurityGroup", 
    ..... 
    }, 
    "Sg2": { 
    "Type": "AWS_EC2_SecurityGroup", 
    ..... 
    } 
} 

Hier wird template verschachtelt Stapel:

{ 
    "Resources": { 
    "flow1": { 
     "Type": "AWS::EC2::SecurityGroupIngress", 
     "Properties": { 
     "SourceSecurityGroupId": {"Ref": "Sg1"}, 
     "FromPort": "161", 
     "ToPort": "161", 
     "GroupId": {"Ref": "Sg2"}, 
     "IpProtocol": "tcp" 
     } 
    } 
} 

Wenn der gesamte Stapel über Cloudformation bereitstellen, alles richtig, bis es zu dem verschachtelten Stapel kommt erstellt und dann bekomme ich einfach diese Nachricht:

Bitte helfen, mit dem vollen Beispiel Um die ähnlichen Fälle zu vermeiden, die ich bei Google fand, wo die Antwort eine Lösung vorschlug, aber so unklar, dass die nächsten 20 Leute dasselbe wieder fragen mussten: wo und was?

Danke soo viel, ich auf diesem den ganzen Nachmittag verbrachten bereits ...

Mike

+0

können Sie versuchen, zu ersetzen "DependsOn": [ "Sg1", "Sg2"] mit "DependsOn": [SG1, SG2] – error2007s

+0

Nicht benötigt - Die DependsOn richtig von AWS zu verstehen, die durch die Tatsache bestätigt, dass die SecurityGroups vollständig erstellt werden, bevor die Stack-Erstellung beginnt. – Mike

Antwort

1

Sie können einen Parameter Abschnitt der verschachtelten Vorlage hinzufügen müssen, z.B.

{ 
    "Parameters" : { 
    "Sg1" : { 
     "Type" : "AWS::EC2::SecurityGroup", 
     "Description" : "cool beans" 
    }, 
    "Sg2" : { 
     "Type" : "AWS::EC2::SecurityGroup", 
     "Description" : "whatever" 
    } 
    }, 
    "Resources": { 
    "flow1": { 
     "Type": "AWS::EC2::SecurityGroupIngress", 
     "Properties": { 
     "SourceSecurityGroupId": {"Ref": "Sg1"}, 
     "FromPort": "161", 
     "ToPort": "161", 
     "GroupId": {"Ref": "Sg2"}, 
     "IpProtocol": "tcp" 
     } 
    } 
    } 
}