输出(Outputs)

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

语法

Outputs由输出Name和输出描述组成。每一个输出项支持以数组形式输出多个值。请参见以下Outputs的语法结构示例代码:

Outputs:
  输出1 Name:
    Description: 输出的描述
    Condition: 是否输出此资源属性的条件
    Value: 输出值的表达式
    Label: 输出的别名
  输出2 Name:
    Description: 输出的描述
    Condition: 是否输出此资源属性的条件
    Value:
      - 输出值的表达式1
      - 输出值的表达式2
      - ...
    Label: 输出的别名
  • 输出Name:输出项的标识符,在模板中具有唯一性。

  • Description(可选):对输出值的描述。

  • Value(必需):在调用查询资源栈接口时,返回的属性值。

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

  • Label(可选):输出的别名。

  • NoEcho(可选):是否输出参数值。如果将值设置为true,则只输出星号(*)。

  • Console.Url(可选):在资源栈信息页面输出使用信息。

示例

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

Outputs:
  InstanceId:
    Value:
      Fn::GetAtt:
        - WebServer
        - InstanceId
  PublicIp & PrivateIp:
    Value:
      - Fn::GetAtt:
          - WebServer
          - PublicIp
      - Fn::GetAtt:
          - WebServer
          - PrivateIp

在以下示例中,根据MaxAmount的值判断是否创建WebServer。

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  MaxAmount:
    Type: Number
    Default: 1
Conditions:
  CreateWebServer:
    Fn::Not:
      Fn::Equals:
        - 0
        - Ref: MaxAmount
Resources:
  WebServer:
    Type: ALIYUN::ECS::InstanceGroup
    Condition: CreateWebServer
    Properties:
      ImageId: m-25l0r****
      InstanceType: ecs.t1.small
      MaxAmount:
        Ref: MaxAmount
Outputs:
  WebServerIP:
    Condition: CreateWebServer
    Value:
      Fn::GetAtt:
        - WebServer
        - PublicIps

在以下示例中,输出了Output Value所支持的多种数据类型(如列表、字典、函数、常量等),并加入了服务域名访问地址的Output示例。

ROSTemplateFormatVersion: '2015-09-01'
Metadata: {}
Parameters:
  DictObjectParameter:
    Default:
      k2: v2
      k1: v1
    Type: Json
  NumberParameter:
    Default: 3.14
    Type: Number
  StringParameter:
    Default: ecs.c1.large
    Type: String
  ArrayListParameter:
    Default:
      - xiaomi
      - xiaofeng
      - xiaoliang
    Type: Json
  EcsInstancePublicIp:
    Default: 1.1.1.1
    Type: String
Resources: {}
Outputs:
  Console.Url:
    Description: Console Url Demo Value
    Value:
      Fn::Sub:
        - http://${EcsPublicIp}/elasticsearch-demo
        - EcsPublicIp:
            Ref: EcsInstancePublicIp
  ArrayList:
    Description: ArrayList Output Value
    Value:
      Ref: ArrayListParameter
  DictObject:
    Description: DictObject Output Value
    Value:
      Ref: DictObjectParameter
  Number:
    Description: Number Output Value
    Value:
      Ref: NumberParameter
  String:
    Description: String Output Value
    Value:
      Ref: StringParameter