

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

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

# 学习 AWS CDK 的核心概念
<a name="core-concepts"></a>

了解 AWS Cloud Development Kit (AWS CDK) 背后的核心概念。

## AWS CDK 和 IaC
<a name="concepts-iac"></a>

 AWS CDK 是一个开源框架，您可以使用它来使用代码管理您的 AWS 基础架构。这种方法被称为*基础设施即代码（IaC）*。通过将基础设施作为代码进行管理和预置，您可以像对待代码一样对待基础设施。这具有许多好处，例如版本控制和可扩展性。要了解有关 IaC 的更多信息，请参阅[什么是基础设施即代码？](https://aws.amazon.com/what-is/iac/) 

## AWS CDK 和 AWS CloudFormation
<a name="concepts-cfn"></a>

 AWS CDK 与紧密集成。 AWS CloudFormation AWS CloudFormation 是一项完全托管的服务，您可以使用它来管理和配置您的基础架构 AWS。使用 AWS CloudFormation，您可以在模板中定义基础架构并将其部署到 AWS CloudFormation。然后，该 AWS CloudFormation 服务会根据您的模板中定义的配置来配置您的基础架构。

 AWS CloudFormation 模板是*声明性的*，这意味着它们声明了基础架构的所需状态或结果。使用 JSON 或 YAML，您可以通过定义 AWS *资源*和*属性*来声明您的 AWS 基础架构。资源代表上的许多服务 AWS ，属性代表您所需的这些服务配置。当您将模板部署到时 AWS CloudFormation，您的资源及其配置的属性将按照模板中的说明进行配置。

使用 AWS CDK，您可以使用通用编程语言*强制*管理您的基础架构。您可以定义达到所需状态所需的逻辑或序列，而不仅仅是以声明方式定义所需的状态。例如，您可以使用 `if` 语句或条件循环确定如何使基础设施达到所需的最终状态。

使用 AWS CDK 创建的基础架构最终会被转换，或者*合成*到 AWS CloudFormation 模板中，然后使用该 AWS CloudFormation 服务进行部署。因此，尽管 AWS CDK 提供了一种不同的方法来创建基础架构，但您仍然可以从中受益 AWS CloudFormation，例如广泛的 AWS 资源配置支持和强大的部署流程。

要了解更多信息 AWS CloudFormation，请参阅[什么是 AWS CloudFormation？](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 在《* AWS CloudFormation 用户指南》*中。

## AWS CDK 和抽象
<a name="concepts-abstractions"></a>

使用 AWS CloudFormation，您必须定义资源配置方式的每一个细节。这样做的好处是可以完全控制基础设施。但是，这需要您学习、理解和创建强大的模板，其中包含资源配置详细信息以及资源之间的关系，例如权限和事件驱动的交互。

使用 AWS CDK，您可以同样控制自己的资源配置。但是， AWS CDK 还提供了强大的抽象功能，可以加快和简化基础设施开发过程。例如， AWS CDK 包括提供合理默认配置的构造和为你生成样板代码的辅助方法。 AWS CDK 还提供工具，例如 AWS CDK 命令行界面 (CD AWS K CLI)，可为您执行基础架构管理操作。

## 了解有关 AWS CDK 核心概念的更多信息
<a name="concepts-learn"></a><a name="concepts-learn-interact"></a>

 **与 AWS CDK 互动**   
与 AWS CDK 一起使用时，您将主要与 AWS 构造库和 AWS CDK CLI 进行交互。<a name="concepts-learn-develop"></a>

 **使用 AWS CDK 进行开发**   
 AWS CDK 可以用任何[支持的编程语言编](languages.md)写。您可以先从 [CDK 项目](projects.md)开始，该项目包含文件夹和文件（包括[资产](assets.md)）的结构。在项目中，您可以创建 [CDK 应用程序](apps.md)。在应用程序中，您可以定义一个[堆栈](stacks.md)，它直接表示 CloudFormation 堆栈。在堆栈中，您可以使用[构造](constructs.md)定义 AWS 资源和属性。<a name="concepts-learn-deploy"></a>

 **使用 AWS CDK 进行部署**   
将 CDK 应用程序部署到 AWS [环境](environments.md)中。在部署之前，您必须执行一次性[引导](bootstrapping.md)以准备您的环境。<a name="concepts-learn-more"></a>

 **了解详情**   
要了解有关 AWS CDK 核心概念的更多信息，请参阅本节的主题。