閱讀743 返回首頁    go 小米


參數(Parameters)__模板語法_資源編排-阿裏雲

參數可用於在資源棧創建時覆蓋模板中的某些值,用來提高模板的靈活性和可複用性。

例如,現在有一個模板可以用來創建包含 1 個 SLB 實例,2 個 ECS 實例,1 個 RDS 實例的 Web 應用。如果該 Web 應用負載較高,可以在創建時選擇使用高配的 ECS 實例,否則可以在創建時選擇使用低配的 ECS 實例。在這種情況下,可以定義如下的參數:

  1. "Parameters" : {
  2. "InstanceType" : {
  3. "Type" : "String",
  4. "AllowedValues":["ecs.t1.small","ecs.s1.medium", "ecs.m1.medium", "ecs.c1.large"],
  5. "Default": "ecs.t1.small",
  6. "Label": "ECS規格類型",
  7. "Description" : "請選擇創建 ECS 示例的配置,默認為 ecs.t1.small,可選 ecs.t1.small, ecs.s1.medium, ecs.m1.medium,ecs.c1.large。"
  8. }
  9. }

上麵定義的 InstanceType 參數,允許在用戶使用模板創建資源棧時重新賦值。如果用戶不設置參數值則使用默認的 ecs.t1.small。在資源定義時,可以引用此參數:

  1. "Webserver" : {
  2. "Type" : "ALIYUN::ECS::Instance",
  3. "InstanceType": {
  4. "Ref": "InstanceType"
  5. }
  6. }

語法

每個參數由參數名稱和參數屬性組成。

參數名稱必須為字母數字,並且在同一個模板中不能與其它參數名稱重複。可以用Label字段來定義友好的參數名,一般在把模板動態生成為Web表單時很有用。

參數屬性列表:

屬性 必需 描述
Type

參數的數據類型。

,String

字符串。如: “ecs.s1.medium”

,Number

整數或浮點數。如: 3.14

,CommaDelimitedList

一組用逗號分隔的字符串或數字,可通過Fn::Select函數索引值。如: “80, foo, bar”

,Json

一個 Json 格式的字符串。如: { “foo”: “bar” }

,Boolean

一個布爾值。如: true 或者 false

Default 在創建資源棧時,如果用戶沒有傳入指定值,編排服務會檢查模板中是否有定義默認值,如果有定義默認值,則使用默認值,否則報錯。
AllowedValues 包含參數允許值的列表。
AllowedPattern 一個正則表達式,用於檢查用戶輸入的字符串類型的參數是否匹配,如果用戶輸入的不是字符串類型,則報錯。
MaxLength 一個整數值,確定要允許 String 類型使用的字符的最大數目。
MinLength 一個整數值,確定要允許 String 類型使用的字符的最小數目。
MaxValue 一個數字值,確定要允許 Number 類型使用的最大數字值。
MinValue 一個數字值,確定要允許 Number 類型使用的最小數字值。
NoEcho 當調用查詢堆棧時是否輸出參數值。如果將值設置為 true,則隻輸出星號 (**)。
Description 用於描述參數的字符串。
ConstraintDescription 用於在違反該參數約束條件時說明該約束條件的字符串。
Label 參數別名,支持UTF-8字符,通過模板生成Web表單時可映射為label

示例

以下示例 Parameters 部分聲明有兩個參數。username 參數屬於 String 類型,默認值為 anonymous。可指定的最小長度為 6,可指定的最大長度為 12,並且允許值為 anonymous,user-one,user-two。注意 username 的默認值也必須符合長度限製和允許值限製。password 參數屬於 String 類型,無默認值。將 NoEcho 屬性設置為 true 可阻止查詢堆棧接口返回參數值。可指定的最小長度為 1,可指定的最大長度為 41。該模式允許小寫和大寫字母字符和數字。

  1. "Parameters" : {
  2. "username" : {
  3. "Label": "用戶名",
  4. "Description" : "請輸入用戶名",
  5. "Default": "anonymous",
  6. "Type" : "String",
  7. "MinLength" : "6",
  8. "MaxLength" : "12",
  9. "AllowedValues": ["anonymous", "user-one", "user-two"]
  10. },
  11. "password" : {
  12. "Label": "密碼",
  13. "NoEcho" : "True",
  14. "Description" : "請輸入用戶密碼",
  15. "Type" : "String",
  16. "MinLength" : "1",
  17. "MaxLength" : "41",
  18. "AllowedPattern" : "[a-zA-Z0-9]*"
  19. }
  20. }

偽參數

偽參數是由ROS編排引擎提供的固定參數,可以和用戶定義參數一樣被引用,其值在編排運行時確定。目前支持的偽參數如下:

  • ALIYUN::StackName - 當前資源棧的名稱
  • ALIYUN::StackId - 當前資源棧的ID
  • ALIYUN::Region - 當前資源棧所在的區域

最後更新:2016-11-23 16:04:02

  上一篇:go 模板結構說明__模板語法_資源編排-阿裏雲
  下一篇:go 資源(Resources)__模板語法_資源編排-阿裏雲