在输出(Outputs)中,定义在调用查询资源栈接口时返回的值。例如,定义ECS实例ID的输出,然后可在调用查询资源栈的接口时,查看该实例ID。
语法
Outputs由输出ID和输出描述组成。所有输出描述都被括在大括号({})里。如果声明多个输出项,则用半角逗号(,)分隔开。每一个输出项支持以数组形式输出多个值。请参见以下Outputs的语法结构示例代码:
"Outputs" : {
"输出1 ID" : {
"Description" : "输出的描述",
"Condition": "是否输出此资源属性的条件",
"Value" : "输出值的表达式"
},
"输出2 ID" : {
"Description" : "输出的描述",
"Condition": "是否输出此资源属性的条件",
"Value" : [
"输出值的表达式1",
"输出值的表达式2",
...
]
}
}
- 输出ID:输出项的标识符,在模板中具有唯一性。
- Description(可选):对输出值的描述。
- Value(必需):在调用查询资源栈接口时,返回的属性值。
- Condition(可选):使用Condition属性可以指定是否需要创建某个资源和输出资源的信息。当Condition所指定的条件值为true时,才创建此资源和输出资源信息。
示例
在以下示例中,输出部分有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"]
}
}
}
}