Ottieni un valore dal Systems Manager Parameter Store - AWS Cloud Development Kit (AWS CDK) v2

Questa è la guida per sviluppatori AWS CDK v2. Il vecchio CDK v1 è entrato in manutenzione il 1° giugno 2022 e ha terminato il supporto il 1° giugno 2023.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ottieni un valore dal Systems Manager Parameter Store

AWS Cloud Development Kit (AWS CDK) Possono recuperare il valore degli attributi di AWS Systems Manager Parameter Store. Durante la sintesi, AWS CDK produce un token che viene risolto da AWS CloudFormation durante la distribuzione.

AWS CDK Supporta il recupero di valori semplici e sicuri. Puoi richiedere una versione specifica di entrambi i tipi di valore. Per valori semplici, puoi omettere la versione dalla tua richiesta per recuperare la versione più recente. Per i valori sicuri, è necessario specificare la versione quando si richiede il valore dell'attributo secure.

Nota

Questo argomento mostra come leggere gli attributi dal AWS Systems Manager Parameter Store. Puoi anche leggere i segreti di AWS Secrets Manager (vediOttieni un valore da AWS Secrets Manager).

Leggi i valori di Systems Manager al momento dell'implementazione

Per leggere i valori dall'archivio dei parametri di Systems Manager, utilizzare il valueForStringparametro e valueForSecureStringParameteri metodi. Scegliete un metodo in base al fatto che l'attributo desiderato sia una stringa semplice o un valore di stringa sicuro. Questi metodi restituiscono i token, non il valore effettivo. Il valore viene risolto da AWS CloudFormation durante la distribuzione. Di seguito è riportato un esempio:

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

Attualmente questa funzionalità è supportata da un numero limitato di AWS servizi.

Leggi i valori di Systems Manager al momento della sintesi

A volte è utile fornire un parametro al momento della sintesi. In questo modo, il AWS CloudFormation modello utilizzerà sempre lo stesso valore invece di risolvere il valore durante la distribuzione.

Per leggere un valore dal Systems Manager Parameter Store al momento della sintesi, utilizzate il valueFromLookupmetodo (Python:value_from_lookup). Questo metodo restituisce il valore effettivo del parametro come Contesto di runtime valore. Se il valore non è già stato memorizzato nella cache cdk.json o passato nella riga di comando, viene recuperato dall'account corrente AWS . Per questo motivo, lo stack deve essere sintetizzato con informazioni ambientali esplicite. AWS

Di seguito è riportato un esempio:

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

È possibile recuperare solo stringhe di Systems Manager semplici. Le stringhe sicure non possono essere recuperate. Verrà sempre restituita la versione più recente. Non è possibile richiedere versioni specifiche.

Importante

Il valore recuperato finirà nel modello sintetizzato AWS CloudFormation . Questo potrebbe rappresentare un rischio per la sicurezza, a seconda di chi ha accesso ai AWS CloudFormation modelli e del tipo di valore. In genere, non utilizzate questa funzionalità per password, chiavi o altri valori che desiderate mantenere privati.

Scrivi valori in Systems Manager

È possibile utilizzare la AWS CLI AWS Management Console, o un AWS SDK per impostare i valori dei parametri di Systems Manager. Negli esempi seguenti viene utilizzato il comando SSM put-parameter 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"

Quando aggiorni un valore SSM già esistente, includi anche l'opzione. --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"