在创建模板时,使用参数(Parameters)可提高模板的灵活性和可复用性。创建资源栈时,可根据实际情况,替换模板中的某些参数值。
语法
每个参数由参数名称和参数属性组成。参数名称必须为英文字母、数字,并且在同一个模板中不能与其他参数名称重复。可以用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