私はクラウドフォーメーションテンプレートを作成しています。私のスタックにリソースを作成するのは、環境によって異なります。
したがって、パラメータ(Environment)の値をチェックし、それに基づいてそのリソース(条件:ISProduction)を作成します。
しかし、私の問題は、リソース(MyProductionResource)が作成された場合、別のリソース(AnotherResource)がそれに依存し、他の(MyProductionResource)の出力属性を使用する必要があるということです。ここで
コード:AWSクラウドフォーメーション条件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
私の問題は、私はISProductionがtrueの場合にのみ、AnotherResourceがMyProductionResourceに依存するようにしたいということです。考え方は、DependsOnアイテムに何らかの種類の条件を追加すること、または同じ結果をもたらすものを追加することです。
AWSクラウドフォーメーションでどうすればいいですか?
また、dependsOnリストにリストされているリソースが作成されていないとどうなるかわかりません。クラウド形成テンプレートがエラーを生成するでしょうか?この属性を安全に読み取らせるにはどうすればいいですか?GetAtt MyProductionResource.Outputs.SomeString?場合は、残念ながらDEPENDSONは:: Fnキーを許可していません
AParameter: !If [ISProduction, !GetAtt MyProductionResource.Outputs.SomeString, "default value?!?"]
パラメータのためではなく、場合