Todos os produtos
Search
Central de documentação

Resource Orchestration Service:Exibir parâmetros dinamicamente com base em dependências

Última atualização: Jun 27, 2026

Mostre ou oculte parâmetros de modelo condicionalmente conforme o valor de outro parâmetro. Por exemplo, exiba a unidade de período e o período de assinatura apenas quando o método de faturamento for assinatura.

Sintaxe do modelo

Especifique AssociationProperty e AssociationPropertyMetadata para um parâmetro e controle sua visibilidade com base no valor de outro parâmetro. Em AssociationPropertyMetadata, defina um campo Visible que utilize uma função para determinar a exibição do parâmetro. A sintaxe é:

Visible:
  Condition: Object # Condition to display this parameter.

O campo Condition aceita as seguintes funções:

  • Funções:"Fn::Equals": ["${targetInstanceChargeType}", "PostPaid"].

  • Funções:"Fn::Not": ${condition}.

  • Funções:"Fn::And": [${condition1}, ${condition2}, ...].

  • Funções:"Fn::Or": [${condition1}, ${condition2}, ...].

Exemplo de modelo

Neste exemplo, AssociationProperty está definido no parâmetro targetInstanceChargeType para torná-lo o parâmetro de controle do método de faturamento. Além disso, AssociationPropertyMetadata é usado nos parâmetros dependentes para definir as condições de visibilidade. Isso permite filtrar parâmetros dinamicamente durante a criação da pilha.

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 faturamento. AssociationProperty está definido como ChargeType, portanto, a visibilidade dos demais parâmetros depende deste valor.

  • targetPeriodUnit: unidade de período. AssociationPropertyMetadata está definido como {"Visible": {"Condition": {"Fn::Not": {"Fn::Equals": ["${targetInstanceChargeType}","PostPaid"]}}}}. Essa condição exibe o parâmetro targetPeriodUnit apenas se targetInstanceChargeType não for PostPaid.

    Nota

    O parâmetro targetInstanceChargeType aceita PrePaid para o método de faturamento por assinatura e PostPaid para pagamento conforme o uso.

  • targetPeriod: período de assinatura. AssociationPropertyMetadata está definido como {"Visible": {"Condition": {"Fn::Not": {"Fn::Equals": ["${targetInstanceChargeType}","PostPaid"]}}}}. Tal configuração torna o parâmetro targetPeriod visível somente quando targetInstanceChargeType difere de PostPaid.

Configuração no console

Ao criar uma pilha com este modelo usando o método de faturamento por assinatura, o console ROS exibe os seguintes parâmetros dependentes: PeriodUnit (com opções Week ou Month) e Subscription period. Se PeriodUnit for Week, os valores válidos para o período de assinatura são 1, 2, 3 e 4. Já para PeriodUnit igual a Month, os valores válidos são 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36, 48 e 60.