

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

# AWS CDK 层指南
<a name="introduction"></a>

*Steven Guggenheimer，Amazon Web Services（AWS）*

*2023 年 12 月*（[文档历史记录](doc-history.md)）

AWS Cloud Development Kit (AWS CDK)背后的主要概念之一与在寒冷的天气里保持温暖的概念非常相似。该概念称为*分层*。在寒冷的天气里，您会穿一件衬衫、一件夹克，有时还会穿一件更厚的夹克，具体取决于天气有多冷。如果进屋后发现暖气很热，您可以脱掉一件或两件外套，这样就不会太热了。AWS CDK 使用分层为使用云组件提供不同的抽象级别。分层可确保您在部署基础设施即代码（IaC）堆栈时，永远不会编写过多的代码或对资源属性的访问权限过少。

如果不使用 AWS CDK，您必须手动编写 [AWS CloudFormation](https://aws.amazon.com/pm/cloudformation/) 模板；也就是说，您只利用了单一层，这迫使您编写的代码远远超过通常所需的代码。另一方面，如果 AWS CDK 将 CloudFormation 中通常不需要编写的所有内容都抽象化，那么就无法处理任何边缘情况。

为了解决这个问题，AWS CDK 将资源预调配分为三个独立且不同的层：
+ **第 1 层** – *CloudFormation 层*：最基本的层，其中 CloudFormation 资源和 AWS CDK 资源几乎相同。
+ **第 2 层** – *精心策划的层*：将 CloudFormation 资源抽象成编程类的层，这些类在后台简化了大部分样板 CloudFormation 语法。此层构成了大部分 AWS CDK。
+ **第 3 层** – *模式层*：最抽象的层，在此层，您可以使用第 1 层和第 2 层提供的构建块针对您的特定使用案例自定义代码。

每个层中的每个项目都是一个名为 `Construct` 的特殊 AWS CDK 类的实例。根据 [AWS 文档](https://docs.aws.amazon.com/cdk/v2/guide/constructs.html)，构造是“AWS CDK 应用程序的基本构建块。构造代表‘云组件’，它封装了 AWS CloudFormation 创建该组件所需的一切。” 这些层内的构造称为 *L1*、*L2* 和 *L3 构造*，具体取决于它们所属的层。在本指南中，我们将浏览每个 AWS CDK 层，以了解它们的用途及其重要的原因。

本指南适用于有兴趣深入研究使 AWS CDK 正常工作的核心概念的技术经理、主管和开发者。AWS CDK 是一款流行的工具，但团队常常会错过它所提供的很多功能。当您开始理解本指南中描述的概念时，就可以开启一个充满无限可能的新世界，并优化团队的资源预调配流程。

**在本指南中：**
+ [第 1 层构造](layer-1.md)
+ [第 2 层构造](layer-2.md)
+ [第 3 层构造](layer-3.md)
+ [ 最佳实践](best-practices.md)
+ [常见问题解答](faq.md)
+ [资源](resources.md)。