全部产品
Search
文档中心

资源编排:Fn::GetAtt

更新时间:Feb 02, 2024

调用内部函数Fn::GetAtt,返回模板中对应资源的属性值。

Fn::GetAtt函数用于资源栈以获取资源输出

函数声明

  • JSON

    {
      "Fn::GetAtt": [
        "logicalNameOfResource",
        "attributeName"
      ]
    }
  • YAML

    • 完整函数名的语法。

      Fn::GetAtt:
        - logicalNameOfResource
        - attributeName
    • 缩写形式语法。

      !GetAtt logicalNameOfResource.attributeName

参数信息

  • logicalNameOfResource:资源栈中资源的逻辑名称。资源逻辑名称为您在模板中为特定资源定义的易识别的名称。

  • attributeName:资源栈中资源的属性名称。

返回值

资源栈中对应资源的属性值,即attributeName的值。

使用示例

返回资源名称为MyEcsInstance中的ImageID属性值。

!GetAtt MyEcsInstance.ImageID
{
  "Fn::GetAtt": [
    "MyEcsInstance",
    "ImageID"
  ]
}
说明

在资源栈模板中,使用缩写形式的语法引用资源输出时可以支持包含.的资源名称,但是建议您尽量避免使用包含.的资源逻辑名称。

Resources:
  Foo.Moo.MyInstance:
    Type: ALIYUN::ECS::InstanceGroup
Outputs:
  ImageId:
    Value: !GetAtt Foo.Moo.MyInstance.ImageID

Fn::GetAtt函数用于嵌套资源栈以获取嵌套资源栈的输出

函数声明

  • JSON

    {
      "Fn::GetAtt": [
        "nestedStackName",
        "Outputs.attributeName"
      ]
    }
  • YAML

    • 完整函数名的语法。

      Fn::GetAtt:
       - nestedStack
       - Outputs.attributeName
    • 缩写形式语法。

      !GetAtt nestedStack.Outputs.attributeName
      说明

      使用YAML的缩写形式获取嵌套资源栈输出时,可以支持嵌套资源栈名称中包含.,但不支持嵌套资源栈输出的属性名称中包含.

参数

  • nestedStack:嵌套资源栈的名称。关于嵌套资源栈,请参见使用嵌套资源栈

  • Outputs.attributeNameOutputs.前缀固定,attributeName为嵌套资源栈中输出的属性名称。

返回值

嵌套资源栈中输出的属性值。

使用示例

关于示例的更多信息,请参见ALIYUN::ROS::Stack