

# Obter um valor em texto simples do Systems Manager Parameter Store
<a name="dynamic-references-ssm"></a>

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](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) 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 obter mais informações, consulte [Criar um conjunto de alterações para uma pilha do CloudFormation](using-cfn-updating-stacks-changesets-create.md).

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âmica `ssm` a fim de obter a versão mais recente do parâmetro.
+ Para usar uma referência dinâmica `ssm` na seção `Parameters` 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 obter mais informações, consulte [Especificar recursos existentes no runtime com tipos de parâmetros fornecidos pelo CloudFormation](cloudformation-supplied-parameter-types.md).
+ 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
<a name="dynamic-references-ssm-permissions"></a>

Para especificar um parâmetro armazenado no Systems Manager Parameter Store, é necessário ter permissão para chamar [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html) 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](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-access.html) no *Guia do usuário do AWS Systems Manager*.

## Padrão de referência
<a name="dynamic-references-ssm-pattern"></a>

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](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-versions.html) no *Guia do usuário do AWS Systems Manager*  
Opcional.

## Exemplos
<a name="dynamic-references-ssm-examples"></a>

**Topics**
+ [Parâmetro do ID da AMI pública](#dynamic-references-ssm-public-ami-example)
+ [Parâmetro do ID da AMI personalizado](#dynamic-references-ssm-custom-ami-example)

### Parâmetro do ID da AMI pública
<a name="dynamic-references-ssm-public-ami-example"></a>

O exemplo a seguir cria uma instância do EC2 que faz referência a um parâmetro da AMI pública. A referência dinâmica recupera o ID da AMI do Amazon Linux 2023 mais recente do parâmetro público. Para obter mais informações sobre parâmetros públicos, consulte [Descobrir parâmetros públicos no Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-finding-public-parameters.html) no *Guia do usuário do AWS Systems Manager*.

#### JSON
<a name="dynamic-references-ssm-public-ami-example.json"></a>

```
{
    "Resources": {
        "MyInstance": {
            "Type": "AWS::EC2::Instance",
            "Properties": {
                "ImageId": "{{resolve:ssm:{{/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64}}}}",
                "InstanceType": "t2.micro"
            }
        }
    }
}
```

#### YAML
<a name="dynamic-references-ssm-public-ami-example.yaml"></a>

```
Resources:
  MyInstance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: '{{resolve:ssm:{{/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64}}}}'
      InstanceType: t2.micro
```

### Parâmetro do ID da AMI personalizado
<a name="dynamic-references-ssm-custom-ami-example"></a>

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 {{`2`}} do parâmetro `{{golden-ami}}` no momento em que uma instância é executada a partir do modelo de execução.

#### JSON
<a name="dynamic-references-ssm-custom-ami-example.json"></a>

```
{
    "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
<a name="dynamic-references-ssm-custom-ami-example.yaml"></a>

```
Resources:
  MyLaunchTemplate:
    Type: AWS::EC2::LaunchTemplate
    Properties: 
      LaunchTemplateName: !Sub ${AWS::StackName}-launch-template
      LaunchTemplateData:
        ImageId: '{{resolve:ssm:{{golden-ami:2}}}}'
        InstanceType: t2.micro
```