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