

這是 AWS CDK v2 開發人員指南。較舊的 CDK v1 已於 2022 年 6 月 1 日進入維護，並於 2023 年 6 月 1 日結束支援。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 了解 AWS CDK 核心概念
<a name="core-concepts"></a>

了解 AWS 雲端開發套件 (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 Command Line Interface (AWS CDK 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)。在應用程式中，您可以定義直接代表 CloudFormation [堆疊](stacks.md)的堆疊。在堆疊中，您可以使用 [建構](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 核心概念，請參閱本節中的主題。