文法
每個參數由參數名稱和參數屬性群組成。參數名稱必須為英文字母、數字,並且在同一個模板中不能與其他參數名稱重複。可以用Label欄位來定義參數別名。
參數屬性如下表所示。
參數屬性 | 必須 | 描述 |
Type | 是 | 參數的資料類型。取值: String :字串。例如:"ecs.s1.medium" 。
Number :整數或浮點數。例如:3.14。
CommaDelimitedList :多個值組成的字串,用半形逗號(,)分隔,可通過Fn::Select函數索引值。例如:"80,foo,bar" 。
Json :一個JSON格式的字串。例如:{"foo": "bar"} ,[1, 2, 3] 。
Boolean :布爾值。例如:true 或者false 。
ALIYUN::OOS::Parameter::Value :儲存在OOS參數倉庫中的普通參數。更多資訊,請參見普通參數。例如:my_image 。
ALIYUN::OOS::SecretParameter::Value :儲存在OOS參數倉庫中的加密參數。更多資訊,請參見加密參數。例如:my_password 。
說明 ALIYUN::OOS::Parameter::Value 和ALIYUN::OOS::SecretParameter::Value 不支援AllowedPattern校正。
|
Default | 否 | 在建立資源棧時,如果使用者沒有傳入模板中給出的指定值,ROS會檢查模板中是否定義預設值。如果已定義預設值,則使用預設值,否則報錯。 說明 預設值可以設定為null ,表示該參數取值為空白並且忽略對該參數的驗證。 |
AllowedValues | 否 | 包含參數允許取值的列表。 |
AllowedPattern | 否 | Regex,用於檢查使用者輸入的字串類型的參數是否匹配該Regex。如果使用者輸入的不是字串類型,則報錯。 如果使用以下特殊字元,需要在字元前輸入兩個反斜線(\\)進行轉義:
說明 短劃線(-)在緊挨邊界時無需轉義,例如:[a-z-]。 |
MaxLength | 否 | 一個整數值,輸入的String型別參數值的最大長度。 |
MinLength | 否 | 一個整數值,輸入的String型別參數值的最小長度。 |
MaxValue | 否 | 一個數字值,允許Number類型使用的最大數字值。 |
MinValue | 否 | 一個數字值,允許Number類型使用的最小數字值。 |
NoEcho | 否 | 如果將值設定為true ,則只輸出星號(*)。您可以在建立資源棧或查看資源棧時,查看是否輸出參數值。 |
Confirm | 否 | 當NoEcho取值為true 時,參數是否需要二次輸入確認。預設值為false 。 說明 只有String類型的參數,且NoEcho取值為true 時,Confirm可以為true 。 |
Description | | 描述參數的字串。取值: zh-cn:使用中文對參數進行描述。 en:使用英文對參數進行描述。
|
ConstraintDescription | 否 | 違反參數的約束條件時,說明對應參數約束條件的字串。 |
Label | 否 | 參數別名,支援UTF-8字元。通過模板產生Web表單時,可映射為label 。 |
AssociationProperty | 否 | 是Parameters的一個特性組件,用於自動驗證參數值的合法性,並且給參數提供可選值。 ROS支援的AssociationProperty及其樣本,請參見AssociationProperty和AssociationPropertyMetadata。 |
AssociationPropertyMetadata | 否 | 為AssociationProperty定義約束條件,篩選出合格結果。 該屬性屬於Map類型。AssociationProperty對應的AssociationPropertyMetadata及其樣本,請參見AssociationProperty和AssociationPropertyMetadata。 |
TextArea | 否 | 參數是否支援換行。取值: true :支援換行。
false (預設值):不支援換行。
例如:以下代碼錶示參數Content支援換行。
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
Content:
Type: String
TextArea: true
Outputs:
TestContent:
Value:
Ref: Content
|
Required | 否 | 設定參數是否必填。取值: true :參數必填,不可為空白。
false :參數非必填。
例如:以下代碼錶示參數ECSInstanceId是否顯示必填。
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
CreateNewECS:
Type: Boolean
Label: 是否建立新的執行個體
Default: false
ECSInstanceId:
Type: String
Required: true
Default: Null
AssociationPropertyMetadata:
Visible:
Condition:
Fn::Equals:
- ${CreateNewECS}
- false
|
Placeholder | 否 | 支援參數輸入框自訂提示。
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
Placeholder:
Type: String
Placeholder:
en: Placeholder
zh-cn: 中文 Placeholder
|
樣本:為Web應用建立資源棧
如果您想通過建立資源棧建立1個Web應用,其中包含1個Server Load Balancer執行個體、2個ECS執行個體和1個RDS執行個體。如果該Web應用負載較高,可以在建立資源棧時選擇高配的ECS執行個體;反之可以在建立資源棧時選擇低配的ECS執行個體。您可以按照如下樣本,在模板中定義ECS執行個體規格參數。
Parameters:
InstanceType:
Type: String
AllowedValues:
- ecs.t1.small
- ecs.s1.medium
- ecs.m1.medium
- ecs.c1.large
Default: ecs.t1.small
Label: ECS規格類型
Description: 請選擇建立ECS樣本的配置,預設為ecs.t1.small,可選ecs.t1.small, ecs.s1.medium, ecs.m1.medium,ecs.c1.large。
樣本中,定義的InstanceType參數允許使用者在使用模板建立資源棧時,對InstanceType進行重新賦值。如果使用者不設定參數值,則使用預設值:ecs.t1.small
。
在定義資源時,可以引用該參數:
Webserver:
Type: ALIYUN::ECS::Instance
InstanceType:
Ref: InstanceType