Obtenga un valor del almacén de parámetros de Systems Manager - AWS Cloud Development Kit (AWS CDK) v2

Esta es la guía para AWS CDK desarrolladores de la versión 2. La CDK versión anterior entró en mantenimiento el 1 de junio de 2022 y finalizó el soporte el 1 de junio de 2023.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Obtenga un valor del almacén de parámetros de Systems Manager

AWS Cloud Development Kit (AWS CDK) Puede recuperar el valor de los atributos del almacén de AWS Systems Manager parámetros. Durante la síntesis, AWS CDK produce un token que se resuelve AWS CloudFormation durante el despliegue.

AWS CDK Soporta la recuperación de valores simples y seguros. Puede solicitar una versión específica de cualquier tipo de valor. Para valores simples, puede omitir la versión de su solicitud para recuperar la versión más reciente. Para los valores seguros, debe especificar la versión al solicitar el valor del atributo seguro.

nota

En este tema se muestra cómo leer los atributos del almacén de AWS Systems Manager parámetros. También puede leer los secretos del AWS Secrets Manager (consulteObtenga un valor de AWS Secrets Manager).

Lea los valores de Systems Manager en el momento de la implementación

Para leer los valores del almacén de parámetros de Systems Manager, utilice el valueForStringparámetro y valueForSecureStringParameterlos métodos. Elija un método en función de si el atributo que desea es una cadena simple o un valor de cadena seguro. Estos métodos devuelven los símbolos, no el valor real. El valor se resuelve AWS CloudFormation durante la implementación. A continuación, se muestra un ejemplo:

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

En la actualidad, hay un número limitado de AWS servicios que admiten esta función.

Lea los valores de Systems Manager en el momento de la síntesis

A veces, resulta útil proporcionar un parámetro en el momento de la síntesis. De este modo, la AWS CloudFormation plantilla siempre utilizará el mismo valor en lugar de resolverlo durante la implementación.

Para leer un valor del almacén de parámetros de Systems Manager en el momento de la síntesis, utilice el valueFromLookupmétodo (Python:value_from_lookup). Este método devuelve el valor real del parámetro en forma de Los valores de contexto y el AWS CDK valor. Si el valor aún no está almacenado en caché cdk.json o no se ha pasado a través de la línea de comandos, se recupera de la AWS cuenta corriente. Por este motivo, la pila debe sintetizarse con información AWS ambiental explícita.

A continuación, se muestra un ejemplo:

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");

Solo se pueden recuperar cadenas simples de Systems Manager. No se pueden recuperar las cadenas seguras. Siempre se devolverá la versión más reciente. No se pueden solicitar versiones específicas.

importante

El valor recuperado acabará en la AWS CloudFormation plantilla sintetizada. Esto puede suponer un riesgo para la seguridad, según quién tenga acceso a tus AWS CloudFormation plantillas y el tipo de valor que tengan. Por lo general, no utilices esta función para contraseñas, claves u otros valores que desees mantener privados.

Escribir valores en Systems Manager

Puede usar la AWS CLI AWS Management Console, el o un AWS SDK para configurar los valores de los parámetros de Systems Manager. Los ejemplos siguientes utilizan el comando CLI ssm put-parameter.

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"

Al actualizar un valor de SSM que ya existe, incluya también la opción. --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"