保存和检索上下文变量值 - AWS Cloud Development Kit (AWS CDK) v2

这是 AWS CDK v2 开发者指南。较旧的 CDK v1 于 2022 年 6 月 1 日进入维护阶段,并于 2023 年 6 月 1 日终止支持。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

保存和检索上下文变量值

可以在cdk.json文件中使用 AWS Cloud Development Kit (AWS CDK) CLI或指定上下文变量。然后,使用TryGetContext方法检索值。

指定上下文变量

您可以将上下文变量指定为 AWS CDK CLI命令的一部分,也可以在中指定cdk.json

要创建命令行上下文变量,请使用 --contex t (-c) 选项,如下例所示。

cdk synth -c bucket_name=mygroovybucket

要在cdk.json文件中指定相同的上下文变量和值,请使用以下代码。

{ "context": { "bucket_name": "myotherbucket" } }

如果您同时使用 AWS CDK CLI和cdk.json文件指定上下文变量,则该 AWS CDK CLI值优先。

检索上下文变量值

要获取应用程序中上下文变量的值,请在构造的上下文中使用该TryGetContext方法。(也就是说this,何时或self在 Python 中,是某个构造的实例。)

在此示例中,我们检索bucket_name上下文变量的值。如果未定义请求的值,则TryGetContext返回undefinedNone在 Python 中;null在 Java 和 C# nil 中;在 Go 中),而不是引发异常。

TypeScript
const bucket_name = this.node.tryGetContext('bucket_name');
JavaScript
const bucket_name = this.node.tryGetContext('bucket_name');
Python
bucket_name = self.node.try_get_context("bucket_name")
Java
String bucketName = (String)this.getNode().tryGetContext("bucket_name");
C#
var bucketName = this.Node.TryGetContext("bucket_name");

在构造的上下文之外,你可以从应用程序对象访问上下文变量,如下所示。

TypeScript
const app = new cdk.App(); const bucket_name = app.node.tryGetContext('bucket_name')
JavaScript
const app = new cdk.App(); const bucket_name = app.node.tryGetContext('bucket_name');
Python
app = cdk.App() bucket_name = app.node.try_get_context("bucket_name")
Java
App app = App(); String bucketName = (String)app.getNode().tryGetContext("bucket_name");
C#
app = App(); var bucketName = app.Node.TryGetContext("bucket_name");

有关使用上下文变量的更多详细信息,请参阅上下文值和 AWS CDK