2016-12-11 2 views
0

Fn :: ImportValueでDependsOnを使用することはできますか?CloudendsでFn :: ImportValueでDependsOnを使用する

"DependsOn": {"Fn::ImportValue": { 
      "Fn::Sub": "${MyStack1}-VPCGatewayAttachment" 
     }} 

具体的には、私はVPCとInternetGatewayAttchmentを1つのスタックに持っています。私はこのスタックをStack2にインポートしてELBを持っていますが、DependsOnを使ってこの添付ファイルに依存しようとしています

答えて

1

あなたが理由の文書の勧告When a DependsOn attribute is requiredAWS::EC2::VPCGatewayAttachmentDependsOn属性を追加する必要があると思うならば、あなたの特定のケースのビットを展開するこれらの推奨事項は、リソースに対してのみ適用されることに注意することは、同じテンプレートにを定義した:

AWS CloudFormationテンプレートでVPC、ゲートウェイ、およびゲートウェイの添付ファイルが定義されている場合、ゲートウェイを必要とするすべてのリソースはゲートウェイの添付ファイルに依存します。

ゲートウェイの添付ファイルが別のテンプレートで定義されている場合、追加の依存関係を明示的に宣言する必要はありません。アプリケーションスタックがネットワークスタックの前に削除される限り、依存リソースはVPCゲートウェイの添付ファイルより先に削除されます。

一般に、George M Whitaker's answerで説明したように、スタック間にDependsOnと宣言する必要はありません。別のスタックがその出力の1つを参照している場合はスタックを削除できないため、Fn::ImportValueを使用してクロススタック参照を作成すると、その参照を含むスタックを削除してからスタックを参照する必要があります。

2

このようにDependsOnを使用しないでください。テンプレート内のリソース間の依存関係を作成する場合にのみ必要です。具体的には、これは、序曲をオーバーライドするために使用されます。

FN::ImportValueは、スタック生成の前にエクスポートされた値が存在する必要があるため、本質的に依存する関数です。したがって、適切なリソースでインポート値を参照するだけです。

関連する問題