スタックの出力値のエクスポート
スタック間で情報を共有するには、スタックの出力値をエクスポートします。同じ AWS アカウントとリージョンの他のスタックは、エクスポートされた値をインポートできます。たとえば、パブリックウェブサーバーのサブネットやセキュリティグループの ID をエクスポートする単一ネットワーキングスタックがあります。パブリックウェブサーバーのあるスタックは、それらのネットワーキングリソースを簡単にインポートできます。リソースの ID をスタックのテンプレートにハードコード化する、または、ID を入力パラメータとして渡す必要はありません。
スタックの出力値をエクスポートするには、スタックのテンプレートの Output セクションの Export
フィールドを使用します。これらの値をインポートするには、他のスタックのテンプレートの Fn::ImportValue 関数を使用します。チュートリアル、およびサンプルテンプレートについては、チュートリアル: 別の AWS CloudFormation スタックのリソース出力を参照する を参照してください。
注記
別のスタックが出力値をインポート後、出力値をエクスポートしているスタックを削除したり、エクスポートされた出力値を変更することはできません。エクスポートしているスタックを削除したり出力値を変更する前に、インポートをすべて削除する必要があります。
スタック出力値のエクスポートとネストされたスタックの使用との比較
ネストされたスタックとは、AWS::CloudFormation::Stack リソースを使用して別のスタック内に作成したスタックです。ネストされたスタックにより、1 つのスタックからすべてのリソースをデプロイし、管理します。ネストされたスタックグループからの出力をグループ内の別のスタックへの入力として使用できます。これは値のエクスポートとは異なります。
情報共有をネストされたスタックグループ内に隔離する場合は、ネストされたスタックを使用することを推奨します。ネストされたスタックのグループ内に限らず、他のスタックと情報を共有するには、値をエクスポートします。たとえば、サブネットのあると 1 つのスタックを作成し、ID をエクスポートできます。他のスタックは、ID をインポートすることでそのサブネットを使用できます。各スタックが独自のサブネットを作成する必要はありません。スタックがサブネット ID をインポートする限り、それを変更または削除することはできません。
エクスポートされた出力値のリスト
インポートできる値を確認するには、AWS CloudFormation コンソール、AWS CLI、または AWS CloudFormation API を使用してエクスポートされた出力値をすべてリスト表示します。AWS CloudFormation は、現在のリージョンのエクスポートされた出力の名前と値、および出力がエクスポートされるスタックを表示します。スタックのテンプレートでエクスポートされた出力値を参照するには、エクスポート名と Fn::ImportValue 関数を使用します。
エクスポートされた出力値 (コンソール) をリスト表示するには
-
AWS CloudFormation コンソール
の [CloudFormation] ナビゲーションペインから、[エクスポート] を選択します。
エクスポートされた出力値 (AWS CLI) をリスト表示するには
-
aws cloudformation list-exports
コマンドを実行します。
エクスポートされた出力値 (API) をリスト表示するには
-
ListExports
API を実行します。