これは AWS CDK v2 デベロッパーガイドです。古い v1 CDK は 2022 年 6 月 1 日にメンテナンスを開始し、2023 年 6 月 1 日にサポートを終了しました。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Systems Manager パラメータストアから値を取得する
は、 AWS Systems Manager Parameter Store 属性の値を取得 AWS Cloud Development Kit (AWS CDK) できます。合成中、 はデプロイ AWS CloudFormation 中に によって解決されるトークン AWS CDK を生成します。
は、プレーン値とセキュア値の両方の取得 AWS CDK をサポートします。どちらの種類の値でも、特定のバージョンをリクエストできます。プレーンな値の場合は、最新バージョンを取得するリクエストからバージョンを省略できます。安全な値には、Secure 属性の値をリクエストするときにバージョンを指定する必要があります。
デプロイ時に Systems Manager 値を読み取る
Systems Manager パラメータストアから値を読み取るには、 valueForStringパラメータと valueForSecureStringParameterメソッドを使用します。目的の属性がプレーン文字列か安全な文字列値かに基づいて、メソッドを選択します。これらのメソッドは、実際の値ではなくトークン を返します。この値は、デプロイ AWS CloudFormation 中に によって解決されます。以下に例を示します。
- 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
現在、この機能をサポートしているAWS サービスは限られています。
合成時に Systems Manager 値を読み取る
合成時にパラメータを指定すると便利です。これにより、 AWS CloudFormation テンプレートはデプロイ中に値を解決するのではなく、常に同じ値を使用します。
合成時に Systems Manager パラメータストアから値を読み取るには、 valueFromLookupメソッド (Python: ) を使用しますvalue_from_lookup
。このメソッドは、 パラメータの実際の値をコンテキスト値と AWS CDK値として返します。値がコマンドラインにキャッシュcdk.json
されていないか、渡されていない場合は、現在の AWS アカウントから取得されます。このため、スタックは明示的な AWS 環境情報で合成する必要があります。
以下に例を示します。
- 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");
取得できるのは、プレーンな Systems Manager 文字列のみです。安全な文字列は取得できません。常に最新バージョンが返されます。特定のバージョンをリクエストすることはできません。
取得された値は、合成された AWS CloudFormation テンプレートになります。 AWS CloudFormation テンプレートにアクセスできるユーザーとその価値の種類によっては、セキュリティ上のリスクが生じる可能性があります。通常、プライベートにしておくパスワード、キー、またはその他の値にはこの機能を使用しないでください。
Systems Manager に値を書き込む
AWS CLI、、または AWS SDK を使用して AWS Management Console、Systems Manager のパラメータ値を設定できます。次の例では、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"
既に存在する SSM 値を更新する場合は、 --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"