全部产品
阿里云办公

输出(Outputs)

更新时间:2018-02-07 10:35:35

在输出(Outputs)中,定义在调用查询堆栈接口时返回的值。例如,定义 ECS 实例 ID 的输出,然后可在调用查询堆栈的接口时,查看该实例 ID。

语法

Outputs 由输出 ID 和输出描述组成。所有输出描述都被括在大括号里。如果声明多个输出项,则用逗号分隔开。请参见以下 Outputs 的语法结构示例代码段:

  1. "Outputs" : {
  2. "输出1 ID" : {
  3. "Description" : "输出的描述",
  4. "Condition": "是否输出此资源属性的条件",
  5. "Value" : "输出值的表达式"
  6. },
  7. "输出 2 ID" : {
  8. "Description" : "输出的描述",
  9. "Condition": "是否输出此资源属性的条件",
  10. "Value" : "输出值的表达式"
  11. }
  12. }

输出 ID

输出项的标识符,在模板中具有唯一性。

Description(可选)

用于描述输出值的 String 类型。

Value(必需)

在调用查询堆栈接口时,返回的属性值。

Condition(可选)

使用 Condition 属性可以指定是否需要创建某个资源和输出资源的信息。当 Condition 所指定的条件值为 true 时,才创建此资源和输出资源信息。

如以下代码段所示,根据 MaxAmount 的值判断是否创建 WebServer:

  1. {
  2. "ROSTemplateFormatVersion" : "2015-09-01",
  3. "Parameters": {
  4. "MaxAmount": {
  5. "Type": "Number",
  6. "Default": 1
  7. }
  8. },
  9. "Conditions": {
  10. "CreateWebServer": {"Fn::Not": {"Fn::Equals": [0, {"Ref": "MaxAmount"}]}}
  11. }
  12. "Resources" : {
  13. "WebServer": {
  14. "Type": "ALIYUN::ECS::InstanceGroup",
  15. "Condition": "CreateWebServer",
  16. "Properties": {
  17. "ImageId" : "m-25l0rcfjo",
  18. "InstanceType": "ecs.t1.small"
  19. "MaxAmount": {"Ref": "MaxAmount"}
  20. }
  21. }
  22. }
  23. "Outputs": {
  24. "WebServerIP": {
  25. "Condition": "CreateWebServer",
  26. "Value": {
  27. "Fn::GetAtt": ["WebServer", "PublicIps"]
  28. }
  29. }
  30. }
  31. }

示例

在以下示例中,输出部分有 2 个输出项。第一个输出资源 ID 为 WebServer 的 InstanceId 属性,第二个输出资源 ID 为 WebServer 的 PublicIp 属性。

  1. "Outputs": {
  2. "InstanceId": {
  3. "Value" : {"Fn::GetAtt": ["WebServer","InstanceId"]}
  4. },
  5. "PublicIp": {
  6. "Value" : {"Fn::GetAtt": ["WebServer","PublicIp"]}
  7. }
  8. }