

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

# 将作 AWS CDK 为 IaC 工具使用
<a name="aws-cdk"></a>

[AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html)是一个开源软件开发框架，允许您使用熟悉的编程语言来定义云应用程序资源。 AWS CDK 支持 JavaScript、 TypeScript、Python、Java、C\# 和 Go。它们 AWS CDK 以安全、可重复的方式 AWS CloudFormation配置您的资源。当你合成 AWS CDK 代码时，结果是一个 CloudFormation 模板。 AWS CDK 提供了简化 AWS 资源定义过程的高级抽象。

 AWS CDK 使用[构造的概念。](https://docs.aws.amazon.com/cdk/v2/guide/constructs.html) *结构*是应用程序中的一个组件，它代表一个或多个 CloudFormation资源及其配置，例如亚马逊简单存储服务 (Amazon S3) Service 存储桶。可以对构造进行组合和定制，以创建更复杂的基础架构。有关更多信息，请参阅 AWS CDK 文档中的[构造关卡](https://docs.aws.amazon.com/cdk/v2/guide/constructs.html#constructs_lib_levels)。 根据开发人员编写的代码 AWS CDK 生成 CloudFormation 模板。这样就无需手动创建 CloudFormation 模板。许多组织在社区中自定义、共享和重复使用构造，就像任何其他软件库一样。共享构造可以帮助开发人员更快地编写代码，并在默认情况下采用最佳实践。

AWS CDK [方面](https://docs.aws.amazon.com/cdk/v2/guide/aspects.html)可以帮助组织将标准应用于给定范围内的所有结构。该方面可以修改结构，例如通过添加标签。或者它可以验证一些关于构造状态的信息。

 AWS CDK 允许开发人员利用他们现有的编程技能和知识来定义云基础架构。通过使用熟悉的编程语言，开发人员可以运用他们的专业知识来描述 AWS 资源，从而更轻松地从应用程序开发过渡到基础设施配置。此外， AWS CDK 还可以加快 AWS 基础设施的创建。与手动编写 CloudFormation 模板相比，这加快了开发生命周期。

**使用以下的优点 AWS CDK：**
+  AWS CDK 支持众所周知的编程语言。
+ 通用语言允许使用逻辑结构，例如 for 循环、对象、强类型和其他编程技术。这可以帮助开发人员以简洁无误的方式声明基础架构。这种方法还使得使用集成开发环境 (IDE) 和相关工具来帮助管理大量资源声明的复杂性成为可能。
+ AWS CDK 结构是可共享的，可帮助您满足治理和合规要求。
+ 这些 AWS CDK 构造可以减少开发的时间和精力。如需了解更多信息，请参阅[构造库 API 参考](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-construct-library.html)。
+  AWS CDK 是基于 CloudFormation。如果你熟悉 CloudFormation 其概念，那么 AWS CDK 概念就更容易理解。
+  AWS CDK 可以帮助您执行[单元测试和快照测试](https://docs.aws.amazon.com/cdk/v2/guide/testing.html)。
+ 如果原生不支持某项功能 AWS CDK，则可以使用 [1 级构造](https://docs.aws.amazon.com/cdk/v2/guide/constructs.html#constructs_lib_levels_one)和[原始覆盖](https://docs.aws.amazon.com/cdk/v2/guide/cfn_layer.html#cfn_layer_raw)。或者，您可以使用直接调用 API 的[CloudFormation 自定义资源](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources.html)。
+ 您可以通过删除 CloudFormation 堆栈来高效地清理资源。

**使用以下方法的缺点 AWS CDK：**
+  AWS CDK 需要在每个[环境中都有一个引导环境](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html)。 AWS 账户 Bootstrapping 是一次性操作，您必须对部署资源的每个环境执行此操作。
+  AWS CDK 只能用于在中部署 IaC。 AWS Cloud