

Este é o Guia do desenvolvedor do AWS CDK v2. O CDK v1 antigo entrou em manutenção em 1º de junho de 2022 e encerrou o suporte em 1º de junho de 2023.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Obter um valor do Systems Manager Parameter Store
<a name="get-ssm-value"></a>

O kit de desenvolvimento em nuvem da AWS (CDK da AWS) pode recuperar o valor dos atributos do AWS Systems Manager Parameter Store. Durante a síntese, o AWS CDK produz um [token](tokens.md) que é resolvido pelo AWS CloudFormation durante a implantação.

O AWS CDK oferece suporte à recuperação de valores simples e seguros. É possível solicitar uma versão específica de qualquer tipo de valor. Para valores simples, você pode omitir a versão da sua solicitação para recuperar a versão mais recente. Para valores seguros, você deve especificar a versão ao solicitar o valor do atributo seguro.

**nota**  
Este tópico mostra como ler atributos do AWS Systems Manager Parameter Store. Você também pode ler segredos do AWS Secrets Manager (consulte [Obtenção de um valor do AWS Secrets Manager](get-secrets-manager-value.md)).

## Leia os valores do Systems Manager no momento da implantação
<a name="ssm-read-at-deploy"></a>

Para ler valores do Systems Manager Parameter Store, use os métodos [https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ssm.StringParameter.html#static-valuewbrforwbrstringwbrparameterscope-parametername-version](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ssm.StringParameter.html#static-valuewbrforwbrstringwbrparameterscope-parametername-version) e [https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ssm.StringParameter.html#static-valuewbrforwbrsecurewbrstringwbrparameterscope-parametername-version](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ssm.StringParameter.html#static-valuewbrforwbrsecurewbrstringwbrparameterscope-parametername-version). Escolha um método com base no fato de o atributo que você deseja ser uma string simples ou um valor de string seguro. Esses métodos retornam [tokens](tokens.md), não o valor real. O valor é resolvido pelo AWS CloudFormationdurante a implantação. Veja um exemplo a seguir:

**Example**  

```
import * as ssm from 'aws-cdk-lib/aws-ssm';

// Get latest version or specified version of plain string attribute
const latestStringToken = ssm.StringParameter.valueForStringParameter(
    this, 'my-plain-parameter-name');      // latest version
const versionOfStringToken = ssm.StringParameter.valueForStringParameter(
    this, 'my-plain-parameter-name', 1);   // version 1

// Get specified version of secure string attribute
const secureStringToken = ssm.StringParameter.valueForSecureStringParameter(
    this, 'my-secure-parameter-name', 1);   // must specify version
```

```
const ssm = require('aws-cdk-lib/aws-ssm');

// Get latest version or specified version of plain string attribute
const latestStringToken = ssm.StringParameter.valueForStringParameter(
    this, 'my-plain-parameter-name');      // latest version
const versionOfStringToken = ssm.StringParameter.valueForStringParameter(
    this, 'my-plain-parameter-name', 1);   // version 1

// Get specified version of secure string attribute
const secureStringToken = ssm.StringParameter.valueForSecureStringParameter(
    this, 'my-secure-parameter-name', 1);   // must specify version
```

```
import aws_cdk.aws_ssm as ssm

# Get latest version or specified version of plain string attribute
latest_string_token = ssm.StringParameter.value_for_string_parameter(
    self, "my-plain-parameter-name")
latest_string_token = ssm.StringParameter.value_for_string_parameter(
    self, "my-plain-parameter-name", 1)

# Get specified version of secure string attribute
secure_string_token = ssm.StringParameter.value_for_secure_string_parameter(
    self, "my-secure-parameter-name", 1)   # must specify version
```

```
import software.amazon.awscdk.services.ssm.StringParameter;

//Get latest version or specified version of plain string attribute
String latestStringToken = StringParameter.valueForStringParameter(
            this, "my-plain-parameter-name");       // latest version
String versionOfStringToken = StringParameter.valueForStringParameter(
            this, "my-plain-parameter-name", 1);    // version 1

//Get specified version of secure string attribute
String secureStringToken = StringParameter.valueForSecureStringParameter(
            this, "my-secure-parameter-name", 1);   // must specify version
```

```
using Amazon.CDK.AWS.SSM;

// Get latest version or specified version of plain string attribute
var latestStringToken = StringParameter.ValueForStringParameter(
    this, "my-plain-parameter-name");      // latest version
var versionOfStringToken = StringParameter.ValueForStringParameter(
    this, "my-plain-parameter-name", 1);   // version 1

// Get specified version of secure string attribute
var secureStringToken = StringParameter.ValueForSecureStringParameter(
    this, "my-secure-parameter-name", 1);   // must specify version
```

Atualmente, um [número limitado de serviços AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#template-parameters-dynamic-patterns-resources) oferece suporte a esse atributo.

## Leia os valores do Systems Manager no momento da síntese
<a name="ssm-read-at-synth"></a>

Às vezes, é útil fornecer um parâmetro no momento da síntese. Ao fazer isso, o modelo do AWS CloudFormation sempre usará o mesmo valor em vez de resolver o valor durante a implantação.

Para ler um valor do Systems Manager Parameter Store no momento da síntese, use o método [https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ssm.StringParameter.html#static-valuewbrfromwbrlookupscope-parametername](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ssm.StringParameter.html#static-valuewbrfromwbrlookupscope-parametername) (Python: `value_from_lookup`). Esse método retorna o valor real do parâmetro como um valor [Varlores de contexto e o AWS CDK](context.md). Se o valor ainda não estiver armazenado em cache `cdk.json` ou passado na linha de comando, ele será recuperado da conta AWS atual. Por esse motivo, a pilha *deve* ser sintetizada com informações explícitas do ambiente AWS.

Veja um exemplo a seguir:

**Example**  

```
import * as ssm from 'aws-cdk-lib/aws-ssm';

const stringValue = ssm.StringParameter.valueFromLookup(this, 'my-plain-parameter-name');
```

```
const ssm = require('aws-cdk-lib/aws-ssm');

const stringValue = ssm.StringParameter.valueFromLookup(this, 'my-plain-parameter-name');
```

```
import aws_cdk.aws_ssm as ssm

string_value = ssm.StringParameter.value_from_lookup(self, "my-plain-parameter-name")
```

```
import software.amazon.awscdk.services.ssm.StringParameter;

String stringValue = StringParameter.valueFromLookup(this, "my-plain-parameter-name");
```

```
using Amazon.CDK.AWS.SSM;

var stringValue = StringParameter.ValueFromLookup(this, "my-plain-parameter-name");
```

Somente strings simples do Systems Manager podem ser recuperadas. Não é possível recuperar strings seguras. A versão mais recente sempre será devolvida. Não é possível solicitar versões específicas.

**Importante**  
O valor recuperado terminará em seu modelo sintetizado do AWS CloudFormation. Isso pode ser um risco de segurança, dependendo de quem tem acesso aos seus modelos do AWS CloudFormation e do tipo de valor que eles representam. Geralmente, não use esse atributo para senhas, chaves ou outros valores que você queira manter privados.

## Gravar valores no Systems Manager
<a name="ssm-write"></a>

É possível usar a AWS CLI, o Console de Gerenciaento da AWS ou um SDK da AWS para definir os valores dos parâmetros do Systems Manager. Os exemplos a seguir usam o comando [https://docs.aws.amazon.com/cli/latest/reference/ssm/put-parameter.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/put-parameter.html) da CLI.

```
aws ssm put-parameter --name "parameter-name" --type "String" --value "parameter-value"
aws ssm put-parameter --name "secure-parameter-name" --type "SecureString" --value "secure-parameter-value"
```

Ao atualizar um valor de SSM que já existe, inclua também a opção `--overwrite`.

```
aws ssm put-parameter --overwrite --name "parameter-name" --type "String" --value "parameter-value"
aws ssm put-parameter --overwrite --name "secure-parameter-name" --type "SecureString" --value "secure-parameter-value"
```