Todos los productos
Search
Centro de documentos

Resource Orchestration Service:Mostrar parámetros dinámicamente según dependencias

Última actualización: Sep 04, 2026

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:

  • Functions:"Fn::Equals": ["${targetInstanceChargeType}", "PostPaid"].

  • Functions:"Fn::Not": ${condition}.

  • Functions:"Fn::And": [${condition1}, ${condition2}, ...].

  • Functions:"Fn::Or": [${condition1}, ${condition2}, ...].

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. AssociationProperty se establece en ChargeType, por lo que la visibilidad de otros parámetros depende del valor de este.

  • targetPeriodUnit: Unidad del periodo. AssociationPropertyMetadata se establece en {"Visible": {"Condition": {"Fn::Not": {"Fn::Equals": ["${targetInstanceChargeType}","PostPaid"]}}}}. Esta condición muestra el parámetro targetPeriodUnit solo cuando targetInstanceChargeType no está configurado como PostPaid.

    Nota

    El 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. AssociationPropertyMetadata se establece en {"Visible": {"Condition": {"Fn::Not": {"Fn::Equals": ["${targetInstanceChargeType}","PostPaid"]}}}}. Esta condición muestra el parámetro targetPeriod solo cuando targetInstanceChargeType no está configurado como PostPaid.

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.