阅读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)__模板语法_资源编排-阿里云