Dapatkan nilai dari Systems Manager Parameter Store - AWS Cloud Development Kit (AWS CDK) v2

Ini adalah Panduan Pengembang AWS CDK v2. CDKV1 yang lebih lama memasuki pemeliharaan pada 1 Juni 2022 dan mengakhiri dukungan pada 1 Juni 2023.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Dapatkan nilai dari Systems Manager Parameter Store

AWS Cloud Development Kit (AWS CDK) Dapat mengambil nilai atribut AWS Systems Manager Parameter Store. Selama sintesis, AWS CDK menghasilkan token yang diselesaikan oleh AWS CloudFormation selama penerapan.

AWS CDK Dukungan mengambil nilai polos dan aman. Anda dapat meminta versi tertentu dari kedua jenis nilai tersebut. Untuk nilai biasa, Anda dapat menghilangkan versi dari permintaan Anda untuk mengambil versi terbaru. Untuk nilai aman, Anda harus menentukan versi saat meminta nilai atribut aman.

catatan

Topik ini menunjukkan cara membaca atribut dari AWS Systems Manager Parameter Store. Anda juga dapat membaca rahasia dari AWS Secrets Manager (lihatMendapatkan nilai dari AWS Secrets Manager).

Baca nilai Systems Manager pada waktu penerapan

Untuk membaca nilai dari Systems Manager Parameter Store, gunakan valueForStringParameter dan valueForSecureStringParametermetode. Pilih metode berdasarkan apakah atribut yang Anda inginkan adalah string biasa atau nilai string aman. Metode ini mengembalikan token, bukan nilai sebenarnya. Nilai diselesaikan oleh AWS CloudFormation selama penerapan. Berikut ini adalah contohnya:

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

Sejumlah AWS layanan terbatas saat ini mendukung fitur ini.

Baca nilai Systems Manager pada waktu sintesis

Kadang-kadang, berguna untuk memberikan parameter pada waktu sintesis. Dengan melakukan ini, AWS CloudFormation template akan selalu menggunakan nilai yang sama alih-alih menyelesaikan nilai selama penerapan.

Untuk membaca nilai dari Systems Manager Parameter Store pada waktu sintesis, gunakan valueFromLookupmetode (Python:value_from_lookup). Metode ini mengembalikan nilai aktual dari parameter sebagai Nilai konteks dan AWS CDK nilai. Jika nilai belum di-cache cdk.json atau diteruskan pada baris perintah, itu diambil dari akun saat ini AWS . Untuk alasan ini, tumpukan harus disintesis dengan informasi AWS lingkungan eksplisit.

Berikut ini adalah contohnya:

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

Hanya string Systems Manager biasa yang dapat diambil. String aman tidak dapat diambil. Versi terbaru akan selalu dikembalikan. Versi tertentu tidak dapat diminta.

penting

Nilai yang diambil akan berakhir di template yang disintesis AWS CloudFormation Anda. Ini mungkin risiko keamanan, tergantung pada siapa yang memiliki akses ke AWS CloudFormation template Anda dan nilai apa itu. Umumnya, jangan gunakan fitur ini untuk kata sandi, kunci, atau nilai lain yang ingin Anda jaga kerahasiaannya.

Menulis nilai ke Systems Manager

Anda dapat menggunakan AWS CLI, SDK AWS Management Console, atau AWS SDK untuk menetapkan nilai parameter Systems Manager. Contoh berikut menggunakan perintah CLI put-parameter ssm.

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"

Saat memperbarui nilai SSM yang sudah ada, sertakan juga --overwrite opsi.

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"