Se você usa frequentemente os mesmos valores de parâmetro em modelos do Resource Orchestration Service (ROS), armazene-os no Operation Orchestration Service (OOS) Parameter Store. Assim, é possível referenciar esses parâmetros pelo nome diretamente nos modelos do ROS.
Contexto
O OOS Parameter Store permite armazenar valores como parâmetros comuns ou criptografados. O Key Management Service (KMS) criptografa os parâmetros criptografados. Este tópico usa um exemplo de criação de grupo de instâncias ECS para demonstrar como criar parâmetros no OOS Parameter Store e referenciá-los em um modelo do ROS. O exemplo cria os seguintes parâmetros:
|
Parâmetro |
Nome do parâmetro |
Categoria |
Tipo |
Valor |
|
ImageId |
my_image |
parâmetro comum |
String |
centos_7_9_x64_20G_alibase_2020****.vhd |
|
SecurityGroupIds |
security_group_ids |
parâmetro comum |
StringList |
sg-group1,sg-group2 |
|
Password |
Password |
parâmetro criptografado |
String |
MyPassword1 |
Para obter mais informações sobre os parâmetros, consulte ALIYUN::ECS::InstanceGroup.
Crie os parâmetros na mesma região da pilha que os utilizará. Por exemplo, se planeja criar uma pilha na região China (Hangzhou), crie os parâmetros nessa mesma região.
Etapa 1: Criar parâmetros no console do OOS
Faça login no console do OOS.
No painel de navegação à esquerda, clique em Parameter Store.
-
Na lista suspensa de regiões na barra de navegação superior, selecione a região onde deseja criar os parâmetros.
NotaOs parâmetros devem estar na mesma região da pilha. Neste exemplo, selecione China (Hangzhou).
-
Crie o parâmetro comum
my_image.Na página Parameter Store, clique na aba Common Parameters e, em seguida, clique em Create Common Parameter.
-
Na página Create Common Parameter, configure Parameter Name e Value e selecione um Parameter Type.
Neste exemplo, use as seguintes configurações:
Parameter Name: my_image.
Parameter Type: String.
Value: centos_7_9_x64_20G_alibase_2020****.vhd.
-
Clique em Create.
Após criar o parâmetro, clique no nome dele na aba Common Parameters para visualizar detalhes como nome, versão, tipo e valor na aba Description.
-
Crie o parâmetro comum
security_group_ids.Na página Parameter Store, clique na aba Common Parameters e, em seguida, clique em Create Common Parameter.
-
Na página Create Common Parameter, configure Parameter Name e Value e selecione um Parameter Type.
Neste exemplo, use as seguintes configurações:
Parameter Name: security_group_ids.
Parameter Type: StringList.
Value: sg-group1,sg-group2.
-
Clique em Create.
Após criar o parâmetro, clique no nome dele na aba Common Parameters para visualizar detalhes como nome, versão, tipo e valor na aba Description.
-
Crie o parâmetro criptografado
Password.Na página Parameter Store, clique na aba Encryption Parameters e, em seguida, clique em Create Encryption Parameter.
-
Na página Create Encryption Parameter, configure Parameter Name e Value e selecione um KMS Key ID.
Neste exemplo, use as seguintes configurações:
Parameter Name: Password.
KMS Key ID: Default service CMK.
Value: MyPassword1.
-
Clique em Create.
Após criar o parâmetro, clique no nome dele na aba Encryption Parameters. Na aba Description, clique em Show ao lado de Value para visualizar o valor do parâmetro Password.
Etapa 2: Escrever um modelo do ROS
Após criar os parâmetros, escreva um modelo do ROS e referencie-os na seção Parameters ou Resources:
-
Referenciar parâmetros na seção
ParametersDefina o
TypecomoALIYUN::OOS::Parameter::Valuepara parâmetros comuns ouALIYUN::OOS::SecretParameter::Valuepara parâmetros criptografados.Por exemplo, o código a seguir define um parâmetro de modelo chamado
ImageIdque referencia a versão mais recente do parâmetro comummy_image.Parameters: ImageId: Type: ALIYUN::OOS::Parameter::Value Default: my_imageTambém é possível referenciar uma versão específica, como a versão 1, definindo o parâmetro como
my_image:1. -
Referenciar parâmetros na seção
ResourcesPara referenciar um parâmetro nas
Propertiesde um recurso, use o seguinte formato:{{resolve:<parameter-type>:<parameter-name>:<version-number>}}.-
parameter-type(Obrigatório)Tipo do parâmetro. Valores válidos:
oos: parâmetro comum.oos-secret: parâmetro criptografado.
-
parameter-name(Obrigatório)Nome do parâmetro.
-
version-number(Opcional)Versão do parâmetro. Se você não especificar esse campo, o sistema usará a versão mais recente.
Por exemplo, o código a seguir mostra como referenciar a versão mais recente do parâmetro comum
my_imagepara a propriedadeImageIde a versão 2 do parâmetro criptografadoPassword.Resources: ECS: Type: ALIYUN::ECS::Instance Properties: ImageId: '{{resolve:oos:my_image}}' Password: '{{resolve:oos-secret:Password:2}}' ...: null -
Você pode usar a maioria das funções intrínsecas ao referenciar parâmetros em um modelo. Para obter mais informações, consulte Functions. As seguintes funções não têm suporte: Ref, Fn::GetAtt, Fn::GetStackOutput e Fn::Calculate.
Este exemplo usa o seguinte modelo:
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
InstanceType:
Type: String
Default: ecs.c6.large
ImageId:
Type: ALIYUN::OOS::Parameter::Value
Default: my_image
Vpc:
Type: String
VSwitch:
Type: String
Resources:
ECS:
Type: ALIYUN::ECS::InstanceGroup
Properties:
ImageId:
Ref: ImageId
InstanceType:
Ref: InstanceType
VpcId:
Ref: Vpc
VSwitchId:
Ref: VSwitch
SecurityGroupIds: '{{resolve:oos:security_group_ids:1}}'
Password: '{{resolve:oos-secret:Password}}'
MaxAmount: 1
Outputs:
InstanceIds:
Value:
Fn::GetAtt:
- ECS
- InstanceIds
O ROS converte automaticamente o tipo de dados do parâmetro referenciado com base no tipo definido no OOS. O Parameter Store oferece suporte aos tipos String e StringList. Ao referenciar um parâmetro do tipo StringList, o ROS o converte em uma lista para uso no modelo. Por exemplo, o parâmetro security_group_ids é um StringList com o valor sg-group1,sg-group2. Ao usar esse parâmetro para criar um recurso ALIYUN::ECS::InstanceGroup, o ROS resolve o valor para ["sg-group1", "sg-group2"].
Etapa 3: Criar uma pilha no console do ROS
No console do ROS, use o modelo de exemplo da Etapa 2 para criar uma pilha que provisiona um grupo de instâncias ECS. Para obter instruções detalhadas, consulte Create a stack.
Após criar a pilha, verifique se os parâmetros foram referenciados corretamente. No painel de navegação à esquerda do console do ROS, clique em Stacks. Na página Stacks, localize e clique no nome da pilha. Na página de detalhes da pilha, clique na aba Parameters para visualizar os parâmetros e seus valores resolvidos.