Puede mostrar u ocultar parámetros de plantilla de forma condicional según el valor de otro parámetro. Por ejemplo, puede mostrar la unidad del periodo y el periodo de suscripción únicamente cuando el método de facturación se establece en subscription.
Sintaxis de la plantilla
Especifique AssociationProperty y AssociationPropertyMetadata para un parámetro a fin de controlar su visibilidad según el valor de otro parámetro. En AssociationPropertyMetadata, defina un campo Visible que use una función para determinar si se muestra el parámetro. La sintaxis es a continuación:
Visible:
Condition: Object # Condition to display this parameter.
El campo Condition admite las siguientes funciones:
Ejemplo de plantilla
En este ejemplo, se configura AssociationProperty en el parámetro targetInstanceChargeType para convertirlo en el parámetro de control del método de facturación. Luego, se usa AssociationPropertyMetadata en los parámetros dependientes para definir sus condiciones de visibilidad. Esto permite filtrar parámetros dinámicamente durante la creación de la pila.
ROSTemplateFormatVersion: '2015-09-01'
Description:
zh-cn: 单实例自定义镜像模板示例,支持创建基础资源配置(VPC、VSwitch、SecurityGroup)或者选择已有基础资源配置,并支持配置ECS的计费方式为包年包月或者按量付费。
en: An example template for creating a single ECS instance from a custom image. You can either create new base resources (VPC, VSwitch, security group) or use existing ones. Supports both subscription and pay-as-you-go billing methods for the ECS instance.
Parameters:
targetInstanceChargeType:
Description:
name-en: targetInstanceChargeType
name-zh-cn: 计费方式
Type: String
AssociationProperty: ChargeType
targetPeriodUnit:
Description:
name-en: The unit of the subscription period
name-zh-cn: 包年包月计费方式的时长单位
Type: String
AllowedValues:
- Week
- Month
Default: Month
AssociationPropertyMetadata:
Visible:
Condition:
Fn::Not:
Fn::Equals:
- ${targetInstanceChargeType}
- PostPaid
targetPeriod:
Description:
name-en: The subscription period of the instance
name-zh-cn: 购买包年包月资源的时长
en: 'Valid values: 1, 2, 3, and 4 if PeriodUnit is Week. 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36, 48, and 60 if PeriodUnit is Month.'
zh-cn: 取值:PeriodUnit取值为Week时:1、2、3、4。PeriodUnit取值为Month时:1、2、3、4、5、6、7、8、9、12、24、36、48、60。
Type: Number
AllowedValues:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 12
- 24
- 36
- 48
- 60
Default: 1
AssociationPropertyMetadata:
Visible:
Condition:
Fn::Not:
Fn::Equals:
- ${targetInstanceChargeType}
- PostPaid
Parámetros:
targetInstanceChargeType: Método de facturación.AssociationPropertyse establece enChargeType, por lo que la visibilidad de otros parámetros depende del valor de este.-
targetPeriodUnit: Unidad del periodo.AssociationPropertyMetadatase establece en{"Visible": {"Condition": {"Fn::Not": {"Fn::Equals": ["${targetInstanceChargeType}","PostPaid"]}}}}. Esta condición muestra el parámetrotargetPeriodUnitsolo cuandotargetInstanceChargeTypeno está configurado comoPostPaid.NotaEl parámetro targetInstanceChargeType acepta PrePaid para el método de facturación subscription y PostPaid para el método pay-as-you-go.
targetPeriod: Periodo de suscripción.AssociationPropertyMetadatase establece en{"Visible": {"Condition": {"Fn::Not": {"Fn::Equals": ["${targetInstanceChargeType}","PostPaid"]}}}}. Esta condición muestra el parámetrotargetPeriodsolo cuandotargetInstanceChargeTypeno está configurado comoPostPaid.
Configuración en la consola
Al crear una pila con esta plantilla mediante el método de facturación subscription, la consola de ROS muestra los siguientes parámetros dependientes: PeriodUnit (con opciones Week o Month) y Subscription period. Si PeriodUnit se establece en Week, los valores válidos para el periodo de suscripción son 1, 2, 3 y 4. Si PeriodUnit se establece en Month, los valores válidos son 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36, 48 y 60.