调用内部函数Fn::GetStackOutput,获取指定资源栈的输出。
函数声明
JSON
{ "Fn::GetStackOutput": [ Stack, OutputName, RegionId ] }
YAML
完整函数的语法。
Fn::GetStackOutput: Stack, OutputName, RegionId
缩写形式。
!GetStackOutput [Stack, OutputName, RegionId]
参数信息
Stack
:必选,String类型。资源栈的名称或ID。OutputName
:必选,String类型。资源栈某一输出名称。RegionId
:可选,String类型。资源栈所属地域,若不指定,则与调用资源栈的地域相同。
返回值
返回资源栈Stack中名为OutputName
的输出,类型依赖于输出值。
若符合如下条件则返回空值:
传递的必选参数中有一个值为空值。
Stack不存在(含已删除)。
Stack运行中或删除失败。
Output不存在。
使用限制
单向引用:A->B->C(允许),A->B->A(不允许),A->A(不允许)。
引用最大长度为3:A->B->C->D(允许),A->B->C->D->E(不允许)。
说明
其中A,B,C,D,E是指资源栈的输出名称,引用最大长度是指函数Fn::GetStackOutput中OutputName引用的深度。
示例
假设目前有3个资源栈stack_a、stack_b 和stack_c ,其中资源栈ID为stack_a_id 、stack_b_id 和stack_c_id 。资源栈stack_a的输出值为stack_depth_3,资源栈stack_b调用函数引用stack_a的输出值,然后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]
文档内容是否对您有帮助?