すべてのプロダクト
Search
ドキュメントセンター

Resource Orchestration Service:Fn::GetStackOutput

最終更新日:Jan 16, 2025

組み込み関数 Fn::GetStackOutput は、スタックの出力をクエリします。

宣言

  • JSON

    {
      "Fn::GetStackOutput": [
        Stack,
        OutputName,
        RegionId
      ]
    }
  • YAML

    • 完全な関数名の構文:

      Fn::GetStackOutput: Stack, OutputName, RegionId
    • 短縮形の構文:

      !GetStackOutput [Stack, OutputName, RegionId]

パラメーター

  • Stack: 必須。このパラメーターは、スタックの名前または ID を指定します。パラメーター値は文字列型である必要があります。

  • OutputName: 必須。このパラメーターは、スタック内の出力の名前を指定します。パラメーター値は文字列型である必要があります。

  • RegionId: オプション。このパラメーターは、スタックのリージョン ID を指定します。パラメーター値は文字列型である必要があります。このパラメーターを指定しない場合、呼び出されたスタックのリージョン ID が使用されます。

戻り値

スタックの OutputName パラメーターに対応する出力。出力タイプは、出力値によって異なります。

次の場合、空の文字列が返されます。

  • 必須パラメーターのいずれかが空です。

  • スタックが存在しないか、削除されています。

  • スタックが実行中であるか、削除に失敗しました。

  • 出力が存在しません。

制限

  • 一方向の参照のみがサポートされています。たとえば、A->B->C はサポートされていますが、A->B->A または A->A はサポートされていません。

  • サポートされる最大の参照の深さは 3 です。たとえば、A->B->C はサポートされていますが、A->B->C->D->E はサポートされていません。

説明

A、B、C、D、E は、スタック内の出力の名前を表します。最大の参照の深さは、Fn::GetStackOutput 関数の OutputName の最大の参照の深さを表します。

サンプル テンプレート

このセクションでは、stack_a、stack_b、stack_c というスタックのサンプル テンプレートを示します。スタックの ID は、stack_a_id、stack_b_id、stack_c_id です。 stack_a の出力値は stack_depth_3 です。 Fn::GetStackOutput 関数は、stack_b の stack_a の出力値を参照するために呼び出されます。次に、Fn::GetStackOutput 関数は、stack_c の stack_b の出力値を参照するために呼び出されます。その結果、stack_c の出力値は stack_depth_3 になります。

  • stack_a

    ROSTemplateFormatVersion: '2015-09-01'
    Outputs:
    	OutputValueA:
      	Value: 'stack_depth_3'
  • stack_b

    ROSTemplateFormatVersion: '2015-09-01'
    Outputs:
    	OutputValueB:
      	Value: 
        	Fn::GetStackOutPut:
        	- stack_a_id
        	- OutputValueA
  • stack_c

    ROSTemplateFormatVersion: '2015-09-01'
    Outputs:
    	OutputValueC:
      	Value: 
        	Fn::GetStackOutPut:
        	- stack_b_id
        	- OutputValueB

!GetStackOutput [4a6c9851-3b0f-4f5f-b4ca-a14bf691****, InstanceId]