A seção Parameters de um modelo define os valores de entrada especificados pelos usuários durante a criação da stack, o que torna os modelos flexíveis e reutilizáveis.
Sintaxe
Cada parâmetro tem um nome e um conjunto de propriedades. Os nomes dos parâmetros podem conter apenas letras e dígitos e devem ser exclusivos no modelo. Use a propriedade Label para definir um alias.
A tabela a seguir descreve as propriedades compatíveis.
|
Propriedade |
Obrigatória |
Descrição |
|
Type |
Sim |
Tipo de dados do parâmetro. Valores válidos:
Nota
AllowedPattern não é compatível com os tipos |
|
Default |
Não |
Valor padrão do parâmetro. Se nenhum valor for especificado durante a criação da stack, o ROS usa esse padrão. Caso contrário, o sistema reporta um erro. Nota
Se o valor padrão for definido como |
|
AllowedValues |
Não |
Valores válidos para o parâmetro. |
|
AllowedPattern |
Não |
Expressão regular para validar parâmetros do tipo String. Aplicar essa propriedade a parâmetros que não sejam do tipo String gera um erro. Adicione duas barras invertidas (\\) antes de cada um dos seguintes caracteres especiais:
Nota
Um hífen (-) usado como primeiro ou último caractere em um intervalo não requer escape. Exemplo: [a-z-]. |
|
MaxLength |
Não |
Número máximo de caracteres permitidos para um parâmetro do tipo String. |
|
MinLength |
Não |
Número mínimo de caracteres exigido para um parâmetro do tipo String. |
|
MaxValue |
Não |
Valor numérico máximo permitido para um parâmetro do tipo Number. |
|
MinValue |
Não |
Valor numérico mínimo permitido para um parâmetro do tipo Number. |
|
NoEcho |
Não |
Quando definido como |
|
Confirm |
Não |
Exige a inserção do valor do parâmetro duas vezes quando NoEcho estiver definido como Nota
Defina a propriedade Confirm como |
|
Description |
Descrição do parâmetro. Compatível com valores localizados:
Nota
O console exibe a descrição correspondente à configuração de idioma atual. |
|
|
ConstraintDescription |
Não |
Mensagem de erro exibida quando há violação de uma restrição de parâmetro. |
|
Label |
Não |
Alias codificado em UTF-8 para o parâmetro. Em formulários web baseados em modelos, os valores de |
|
AssociationProperty |
Não |
Valida automaticamente os valores dos parâmetros e fornece uma lista de opções válidas. Para obter mais informações sobre os valores de AssociationProperty compatíveis com o ROS e exemplos, consulte AssociationProperty and AssociationPropertyMetadata. |
|
AssociationPropertyMetadata |
Não |
Mapa que restringe AssociationProperty e filtra itens correspondentes. Essa propriedade é do tipo Map. Para mais informações sobre a correspondência entre AssociationProperty e AssociationPropertyMetadata, além de exemplos, consulte AssociationProperty and AssociationPropertyMetadata. |
|
TextArea |
Não |
Indica se o parâmetro aceita quebras de linha. Valores válidos:
No exemplo a seguir, o parâmetro Content aceita quebras de linha:
|
|
Required |
Não |
Define se o parâmetro é obrigatório. Valores válidos:
No exemplo abaixo, o parâmetro ECSInstanceId é obrigatório.
Nota
A propriedade Required afeta apenas a exibição no frontend e não impõe validação no backend. |
|
Placeholder |
Não |
Dica exibida no campo de entrada de um parâmetro.
|
Exemplo: Definir o parâmetro InstanceType
Suponha que você crie uma stack para uma aplicação web contendo uma instância SLB, duas instâncias ECS e uma instância ApsaraDB RDS. É possível escolher diferentes tipos de instância ECS conforme os requisitos de carga de trabalho. O código a seguir define o parâmetro InstanceType em um modelo:
Parameters:
InstanceType:
Type: String
AllowedValues:
- ecs.t1.small
- ecs.s1.medium
- ecs.m1.medium
- ecs.c1.large
Default: ecs.t1.small
Label: ECS Instance Type
Description: Select an instance type. Default value: ecs.t1.small. Valid values: ecs.t1.small, ecs.s1.medium, ecs.m1.medium, and ecs.c1.large.
Com essa definição, selecione um valor diferente de InstanceType sempre que criar uma stack. Se omitir o parâmetro InstanceType, o sistema usará o valor padrão ecs.t1.small.
O código a seguir referencia o parâmetro InstanceType na definição de um recurso:
Webserver:
Type: ALIYUN::ECS::Instance
InstanceType:
Ref: InstanceType