在输出(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