

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

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

# AWS CDK 的环境
<a name="environments"></a>

环境由您部署 AWS 云开发工具包 (AWS CDK) 堆栈的 AWS 账户和 AWS 区域组成。

 **AWS 账户**   
创建 AWS 账户时，您会收到一个账户 ID。此 ID 是一个 12 位数字（如 **012345678901**），用于唯一标识账户。要了解更多信息，请参阅《AWS 账户管理参考指南》**中的[查看 AWS 账户标识符](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html)。

 **AWS 区域**   
 AWS 区域是使用地理位置和代表区域内可用区的数字组合命名的。例如，**us-east-1** 表示美国东部（弗吉尼亚州北部）区域中的可用区。要了解有关 AWS 区域的更多信息，请参阅[区域和可用区](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/)。有关区域代码的列表，请参阅《AWS 一般参考》**参考指南中的[区域端点](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints)。

AWS CDK 可通过凭证和配置文件确定环境。可以使用 AWS 命令行界面 (AWS CLI) 创建和管理这些文件。以下是这些文件的基本示例：

 **凭证文件**   

```
[default]
aws_access_key_id=ASIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token = IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE

[user1]
aws_access_key_id=ASIAI44QH8DHBEXAMPLE
aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
aws_session_token = fcZib3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
```

 **：配置文件**   

```
[default]
region=us-west-2
output=json

[profile user1]
region=us-east-1
output=text
```

您可以通过 CDK 提供的环境变量在 CDK 代码中传递这些文件中的环境信息。在运行 CDK CLI 命令（例如 `cdk deploy`）时，您需要提供凭证和配置文件中的配置文件以从中收集环境信息。

以下是在 CDK 代码中指定这些环境的示例：

```
new MyDevStack(app, 'dev', {
  env: {
    account: process.env.CDK_DEFAULT_ACCOUNT,
    region: process.env.CDK_DEFAULT_REGION
}});
```

以下是使用 `--profile` 选项将与 `user1` 配置文件关联的值从凭证和配置文件传递给 CDK CLI 的示例。这些文件中的值将传递给环境变量：

```
$ cdk deploy <myStack> --profile <user1>
```

您还可以在 CDK 代码中对环境值进行硬编码，而不必使用凭证和配置文件中的值。以下是示例：

```
const envEU = { account: '238383838383', region: 'eu-west-1' };
const envUSA = { account: '837873873873', region: 'us-west-2' };

new MyFirstStack(app, 'first-stack-us', { env: envUSA });
new MyFirstStack(app, 'first-stack-eu', { env: envEU });
```

## 了解更多
<a name="environments-learn"></a>

要开始在环境中使用 AWS CDK，请参阅[配置可使用 AWS CDK 的环境](configure-env.md)。