全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 阿里云办公 培训与认证 物联网
资源编排

输出(Outputs)

更新时间:2017-08-30 11:29:28

在输出部分定义在调用查询堆栈接口时返回的值。例如,用户可以定义 ECS 实例 ID 的输出,然后调用查询堆栈的接口查看该实例 ID。

语法

输出部分由输出 ID 和输出描述组成。所有输出描述都被括在括号里。如果您声明多个输出,则可用逗号将它们分隔开。以下代码段描述了输出部分的语法结构:

  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. }
本文导读目录