

Esta es la guía para desarrolladores de AWS CDK v2. La primera versión del CDK pasó a la etapa de mantenimiento el 1.° de junio de 2022 y no cuenta con soporte desde 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.

# Obtención de un valor del Almacén de parámetros de Systems Manager
<a name="get-ssm-value"></a>

El AWS Cloud Development Kit (AWS CDK) puede recuperar el valor de los atributos del almacén de parámetros de AWS Systems Manager. Durante la síntesis, AWS CDK produce un [token](tokens.md) que AWS CloudFormation resuelve durante la implementación.

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 parámetros de AWS Systems Manager. También puede leer los secretos del AWS Secrets Manager (consulte [Obtener un valor de AWS Secrets Manager](get-secrets-manager-value.md)).

## Lectura de valores de Systems Manager al momento de la implementación
<a name="ssm-read-at-deploy"></a>

Para leer los valores del almacén de parámetros de Systems Manager, utilice los 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) y [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). 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 [tokens](tokens.md), no el valor real. AWS CloudFormation se resuelve el valor durante la implementación. A continuación, se muestra un ejemplo:

**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
```

Actualmente, un [número limitado de AWS servicios](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#template-parameters-dynamic-patterns-resources) admiten esta característica.

## Lectura de valores de Systems Manager al momento de la síntesis
<a name="ssm-read-at-synth"></a>

A veces, resulta útil proporcionar un parámetro en el momento de la síntesis. De este modo, la plantilla de AWS CloudFormation 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 al momento de la síntesis, utilice el 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`). Este método devuelve el valor real del parámetro en forma de [valores de contexto y el valor de AWS CDK](context.md). Si el valor aún no está almacenado en caché en `cdk.json` o no se ha pasado a través de la línea de comandos, se recupera de la cuenta de AWS actual. Por este motivo, la pila *debe* sintetizarse con información explícita del entorno de AWS.

A continuación, se muestra un ejemplo:

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

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

**importante**  
El valor recuperado acabará en la plantilla sintetizada de AWS CloudFormation. Esto puede suponer un riesgo de seguridad, dependiendo de quién tenga acceso a sus plantillas de AWS CloudFormation y del tipo de valor que tengan. Por lo general, no utilice esta característica para contraseñas, claves u otros valores que desee mantener privados.

## Escribir valores en Systems Manager
<a name="ssm-write"></a>

Puede usar la CLI de AWS, la consola de administración de AWS, o un SDK de AWS para configurar los valores de los parámetros de Systems Manager. Los siguientes ejemplos utilizan el 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) de la 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"
```

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"
```