在創建模板時,使用參數(Parameters)可提高模板的靈活性和可復用性。創建資源棧時,可根據實際情況,替換模板中的某些參數值。
語法
每個參數由參數名稱和參數屬性組成。參數名稱必須為英文字母、數字,并且在同一個模板中不能與其他參數名稱重復??梢杂?span data-tag="parmname" id="parmname-8ta-6ag-f51" class="parmname">Label字段來定義參數別名。
參數屬性如下表所示。
參數屬性 | 必須 | 描述 |
Type | 是 | 參數的數據類型。取值:
說明
|
Default | 否 | 在創建資源棧時,如果用戶沒有傳入模板中給出的指定值,ROS會檢查模板中是否定義默認值。如果已定義默認值,則使用默認值,否則報錯。 說明 默認值可以設置為 |
AllowedValues | 否 | 包含參數允許取值的列表。 |
AllowedPattern | 否 | 正則表達式,用于檢查用戶輸入的字符串類型的參數是否匹配該正則表達式。如果用戶輸入的不是字符串類型,則報錯。 如果使用以下特殊字符,需要在字符前輸入兩個反斜線(\\)進行轉義:
說明 短劃線(-)在緊挨邊界時無需轉義,例如:[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個負載均衡實例、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