在建立模板時,使用參數(Parameters)可提高模板的靈活性和可複用性。建立資源棧時,可根據實際情況,替換模板中的某些參數值。
文法
每個參數由參數名稱和參數屬性群組成。參數名稱必須為英文字母、數字,並且在同一個模板中不能與其他參數名稱重複。可以用Label欄位來定義參數別名。
參數屬性如下表所示。
參數屬性 | 必須 | 描述 |
Type | 是 | 參數的資料類型。取值:
說明
|
Default | 否 | 在建立資源棧時,如果使用者沒有傳入模板中給出的指定值,ROS會檢查模板中是否定義預設值。如果已定義預設值,則使用預設值,否則報錯。 說明 預設值可以設定為 |
AllowedValues | 否 | 包含參數允許取值的列表。 |
AllowedPattern | 否 | Regex,用於檢查使用者輸入的字串類型的參數是否匹配該Regex。如果使用者輸入的不是字串類型,則報錯。 如果使用以下特殊字元,需要在字元前輸入兩個反斜線(\\)進行轉義:
說明 短劃線(-)在緊挨邊界時無需轉義,例如:[a-z-]。 |
MaxLength | 否 | 一個整數值,輸入的String型別參數值的最大長度。 |
MinLength | 否 | 一個整數值,輸入的String型別參數值的最小長度。 |
MaxValue | 否 | 一個數字值,允許Number類型使用的最大數字值。 |
MinValue | 否 | 一個數字值,允許Number類型使用的最小數字值。 |
NoEcho | 否 | 如果將值設定為 |
Confirm | 否 | 當NoEcho取值為 說明 只有String類型的參數,且NoEcho取值為 |
Description | 描述參數的字串。取值:
說明 對應描述只在控制台的對應語言中體現。 | |
ConstraintDescription | 否 | 違反參數的約束條件時,說明對應參數約束條件的字串。 |
Label | 否 | 參數別名,支援UTF-8字元。通過模板產生Web表單時,可映射為 |
AssociationProperty | 否 | 是Parameters的一個特性組件,用於自動驗證參數值的合法性,並且給參數提供可選值。 ROS支援的AssociationProperty及其樣本,請參見AssociationProperty和AssociationPropertyMetadata。 |
AssociationPropertyMetadata | 否 | 為AssociationProperty定義約束條件,篩選出合格結果。 該屬性屬於Map類型。AssociationProperty對應的AssociationPropertyMetadata及其樣本,請參見AssociationProperty和AssociationPropertyMetadata。 |
TextArea | 否 | 參數是否支援換行。取值:
例如:以下代碼錶示參數Content支援換行。
|
Required | 否 | 設定參數是否必填。取值:
例如:以下代碼錶示參數ECSInstanceId是否顯示必填。
說明 該參數僅在前端體現效果,並不影響參數的驗證。 |
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