Obter um valor em texto simples do Systems Manager Parameter Store
Ao criar um modelo do CloudFormation, talvez você queira usar valores de texto simples armazenados no Parameter Store. O Parameter Store é um recurso do AWS Systems Manager. Para ver uma introdução ao Parameter Store, consulte AWS Systems Manager Parameter Store no Guia do usuário do AWS Systems Manager.
Para usar um valor de texto simples do Parameter Store em seu modelo, você usa uma referência dinâmica ssm
. Essa referência permite acessar valores de parâmetros do tipo String
ou StringList
no Parameter Store.
Para verificar qual versão de uma referência dinâmica ssm
será usada em uma operação de pilha, crie um conjunto de alterações para a operação de pilha. Em seguida, revise o modelo processado na guia Modelo. Para ter mais informações, consulte Criar um conjunto de alterações para uma pilha do CloudFormation e Visualizar um conjunto de alterações para uma pilha do CloudFormation.
Ao usar referências dinâmicas do ssm
, há algumas considerações importantes que você deve ter em mente:
-
O CloudFormation não oferece suporte à detecção de desvio em referências dinâmicas. Para referências dinâmicas
ssm
em que você não especificou a versão do parâmetro, recomendamos que, se você atualizar a versão do parâmetro no Systems Manager, também execute uma operação de atualização de pilha em todas as pilhas que incluam a referência dinâmicassm
a fim de obter a versão mais recente do parâmetro. -
Para usar uma referência dinâmica
ssm
na seçãoParameters
do modelo do CloudFormation, é necessário incluir um número de versão. O CloudFormation não permite que você faça referência a um valor do Parameter Store sem um número de versão nessa seção. Como alternativa, é possível definir seu parâmetro como um tipo de parâmetro do Systems Manager em seu modelo. Ao fazer isso, você pode especificar uma chave de parâmetros do Systems Manager como o valor padrão para seu parâmetro. Em seguida, o CloudFormation recuperará a versão mais recente do valor do parâmetro no Parameter Store sem que você precise especificar um número de versão. Isso pode tornar seus modelos mais simples e fáceis de manter. Para ter mais informações, consulte Especificar recursos existentes no runtime com tipos de parâmetros fornecidos pelo CloudFormation. -
Para recursos personalizados, o CloudFormation resolve referências dinâmicas
ssm
antes de enviar a solicitação ao recurso personalizado. -
O CloudFormation não oferece suporte ao uso de referências dinâmicas para fazer referência a um parâmetro compartilhado de outra Conta da AWS.
-
O CloudFormation não oferece suporte ao uso de rótulos de parâmetros do Systems Manager em referências dinâmicas.
Permissões
Para especificar um parâmetro armazenado no Systems Manager Parameter Store, é necessário ter permissão para chamar GetParameters para o parâmetro especificado. Para saber como criar políticas do IAM que fornecem acesso a parâmetros específicos do Systems Manager, consulte Restringir o acesso a parâmetros do Systems Manager usando políticas do IAM no Guia do usuário do AWS Systems Manager.
Padrão de referência
Para fazer referência a um valor de texto simples armazenado no Parameter Store do Systems Manager em seu modelo do CloudFormation, use este padrão de referência ssm
.
{{resolve:ssm:
parameter-name
:version
}}
Sua referência deve aderir ao seguinte padrão de expressão regular para parameter-name e version:
{{resolve:ssm:[a-zA-Z0-9_.\-/]+(:\d+)?}}
parameter-name
-
O nome do parâmetro no Parameter Store. O nome do parâmetro faz distinção entre maiúsculas e minúsculas.
Obrigatório.
version
-
Um número inteiro que especifica a versão do parâmetro a ser usada. Se você não especificar a versão exata, o CloudFormation usará a versão mais recente do parâmetro sempre que você criar ou atualizar a pilha. Para obter mais informações, consulte Trabalhar com versões de parâmetros no Guia do usuário do AWS Systems Manager
Opcional.
Exemplo
O exemplo a seguir cria um modelo de execução do EC2 que faz referência a um ID de AMI personalizada armazenada no Parameter Store. A referência dinâmica recupera o ID da AMI para a versão
do parâmetro 2
no momento em que uma instância é executada a partir do modelo de execução.golden-ami
JSON
{ "Resources": { "MyLaunchTemplate": { "Type": "AWS::EC2::LaunchTemplate", "Properties": { "LaunchTemplateName": { "Fn::Sub": "${AWS::StackName}-launch-template" }, "LaunchTemplateData": { "ImageId": "{{resolve:ssm:
golden-ami:2
}}", "InstanceType": "t2.micro" } } } } }
YAML
Resources: MyLaunchTemplate: Type: AWS::EC2::LaunchTemplate Properties: LaunchTemplateName: !Sub ${AWS::StackName}-launch-template LaunchTemplateData: ImageId: '{{resolve:ssm:
golden-ami:2
}}' InstanceType: t2.micro