Obter um valor do Systems Manager Parameter Store - AWS Kit de desenvolvimento em nuvem (AWS CDK) v2

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

O AWS Cloud Development Kit (AWS CDK) pode recuperar o valor dos atributos do AWS Systems Manager Parameter Store. Durante a síntese, o AWS CDK produz um token que é resolvido AWS CloudFormation durante a implantação.

O AWS CDK suporta a recuperação de valores simples e seguros. Você pode 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 AWS segredos do Secrets Manager (consulte Obter um valor do AWS Secrets Manager).

Leia os valores do Systems Manager no momento da implantação

Para ler valores do Systems Manager Parameter Store, use os valueForSecureStringParametermétodos valueForStringParametere. 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, não o valor real. O valor é resolvido AWS CloudFormation durante a implantação. Veja um exemplo a seguir:

TypeScript
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
JavaScript
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
Python
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
Java
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
C#
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 AWS serviços oferece suporte a esse recurso.

Leia os valores do Systems Manager no momento da síntese

Às vezes, é útil fornecer um parâmetro no momento da síntese. Ao fazer isso, o AWS CloudFormation modelo 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 valueFromLookupmétodo (Python:value_from_lookup). Esse método retorna o valor real do parâmetro como valores de contexto e valor de AWS CDK. Se o valor ainda não estiver armazenado em cache cdk.json ou passado na linha de comando, ele será recuperado da conta atual AWS . Por esse motivo, a pilha deve ser sintetizada com informações explícitas AWS do ambiente.

Veja um exemplo a seguir:

TypeScript
import * as ssm from 'aws-cdk-lib/aws-ssm'; const stringValue = ssm.StringParameter.valueFromLookup(this, 'my-plain-parameter-name');
JavaScript
const ssm = require('aws-cdk-lib/aws-ssm'); const stringValue = ssm.StringParameter.valueFromLookup(this, 'my-plain-parameter-name');
Python
import aws_cdk.aws_ssm as ssm string_value = ssm.StringParameter.value_from_lookup(self, "my-plain-parameter-name")
Java
import software.amazon.awscdk.services.ssm.StringParameter; String stringValue = StringParameter.valueFromLookup(this, "my-plain-parameter-name");
C#
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 AWS CloudFormation . Isso pode ser um risco de segurança, dependendo de quem tem acesso aos seus AWS CloudFormation modelos e do tipo de valor que eles representam. Geralmente, não use esse recurso para senhas, chaves ou outros valores que você queira manter privados.

Gravar valores no Systems Manager

Você pode usar a AWS CLI, o AWS Management Console ou um AWS SDK para definir os valores dos parâmetros do Systems Manager. Os exemplos a seguir usam o ssm put-parametercomando 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"