Ich schreibe eine Wolkenbildungsvorlage und die Erstellung einer Ressource in meinem Stapel hängt von der Umgebung ab.
Daher überprüfe ich den Wert eines Parameters (Umgebung), und basierend darauf erstelle ich diese Ressource (Bedingung: ISProduction).
Mein Problem ist jedoch, dass im Falle, dass die Ressource erstellt wird (MyProductionResource), eine andere Ressource (AnotherResource) davon abhängig wird und ein Ausgabeattribut von der anderen (MyProductionResource) verwenden muss.
Hier ist der Code:AWS Wolkenbildungsbedingungen auf DependsOn
Conditions:
ISProduction:
"Fn::Equals":
- !Ref Environment
- production
...
MyProductionResource:
Type: AWS::CloudFormation::Stack
Condition: ISProduction
Properties:
[.. properties..]
AnotherResource:
Type: AWS::CloudFormation::Stack
DependsOn:
- AResource
- MyProductionResource
Properties:
TemplateURL: whatever
Parameters:
AParameter: !GetAtt MyProductionResource.Outputs.SomeString
Mein Problem ist, dass ich AnotherResource nur auf MyProductionResource abhängig sein wollen, wenn ISProduction wahr ist. Eine Idee besteht darin, im DependsOn-Objekt eine Art von Bedingungen hinzuzufügen oder irgendetwas, das zum selben Ergebnis führen würde.
Wie kann ich das bei AWS Cloud Formation machen?
Auch ich bin mir nicht sicher, was passiert, wenn die Ressource, die in der Liste dependsOn aufgeführt ist, nicht erstellt wird. Würde die Wolkenbildungsvorlage einen Fehler erzeugen? Wie kann ich dieses Attribut lesensicher machen? GetAtt MyProductionResource.Outputs.SomeString?