這是 AWS CDK v2 開發人員指南。較舊的 CDK v1 已於 2022 年 6 月 1 日進入維護,並於 2023 年 6 月 1 日結束支援。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
什麼是 AWS CDK?
AWS 雲端開發套件 (AWS CDK) 是一種開放原始碼軟體開發架構,可在程式碼中定義雲端基礎設施,並透過 AWS CloudFormation 佈建雲端基礎設施。
AWS CDK 包含兩個主要部分:
-
AWS CDK Construct Library – 一組預先編寫的模組化和可重複使用的程式碼,稱為建構,您可以使用、修改和整合來快速開發您的基礎設施。 AWS CDK Construct Library 的目標是降低在建置應用程式時定義和整合 AWS 服務所需的複雜性 AWS。
-
AWS CDK 命令列界面 (AWS CDK CLI) – 與 CDK 應用程式互動的命令列工具。使用 CDK CLI 來建立、管理和部署 AWS CDK 專案。CDK CLI 也稱為 CDK Toolkit。
AWS CDK 支援 TypeScript、JavaScript、Python、Java、C#/。Net、 和 Go。您可以使用任何這些支援的程式設計語言來定義可重複使用的雲端元件,稱為建構。您可以將它們組合成堆疊和應用程式。然後,您將 CDK 應用程式部署至 AWS CloudFormation,以佈建或更新資源。

AWS CDK 的優點
使用 AWS CDK 以程式設計語言的顯著表達能力,在雲端開發可靠、可擴展、經濟實惠的應用程式。這種方法產生許多好處,包括:
- 開發和管理基礎設施即程式碼 (IaC)
-
將基礎設施練習為程式碼,以程式設計、描述性和宣告方式建立、部署和維護基礎設施。使用 IaC,您會以開發人員處理程式碼的方式對待基礎設施。這會導致管理基礎設施的可擴展性和結構化方法。若要進一步了解 IaC,請參閱 AWS 白皮書上的 DevOps 簡介中的基礎設施即程式碼。
使用 AWS CDK,您可以將基礎設施、應用程式程式碼和組態全部放在一個位置,確保您在每個里程碑都擁有完整的雲端可部署系統。採用軟體工程最佳實務,例如程式碼檢閱、單元測試和來源控制,讓您的基礎設施更強大。
- 使用一般用途程式設計語言定義您的雲端基礎設施
-
使用 AWS CDK,您可以使用下列任何程式設計語言來定義雲端基礎設施:TypeScript、JavaScript、Python、Java、C#/。Net、 和 Go。選擇您偏好的語言,並使用程式設計元素,例如參數、條件、迴圈、合成和繼承,來定義基礎設施的所需結果。
使用相同的程式設計語言來定義您的基礎設施和應用程式邏輯。
獲得在您偏好的 IDE (整合式開發環境) 中開發基礎設施的優勢,例如語法反白和智慧型程式碼完成。
- 透過 AWS CloudFormation 部署基礎設施
-
AWS CDK 與 AWS CloudFormation 整合,以在 上部署和佈建您的基礎設施 AWS。 AWS CloudFormation 是一種受管 AWS 服務,可廣泛支援用於佈建服務的資源和屬性組態 AWS。使用 AWS CloudFormation,您可以可預測且重複地執行基礎設施部署,並在發生錯誤時轉返。如果您已經熟悉 AWS CloudFormation,則不需要在開始使用 AWS CDK 時學習新的 IaC 管理服務。
- 使用 建構模組快速開始開發您的應用程式
-
透過使用和共用稱為建構的可重複使用元件,加快開發速度。使用低階建構來定義 individual AWS CloudFormation 資源及其屬性。使用高階建構來快速定義應用程式的大型元件,為您的 AWS 資源設定明智且安全的預設值,以較少的程式碼定義更多基礎設施。
建立針對您唯一使用案例自訂的專屬建構,並與您的組織或甚至公眾共用。
AWS CDK 的範例
以下是使用 AWS CDK Constructs Library 建立具有 AWS Fargate 啟動類型的 Amazon Elastic Container Service (Amazon ECS) 服務的範例。如需此範例的詳細資訊,請參閱範例:使用 AWS CDK 建立 AWS Fargate 服務。
此類別會產生超過 500 行的 AWS CloudFormation 範本。 https://github.com/awsdocs/aws-cdk-guide/blob/main/doc_source/my_ecs_construct-stack.yaml
AWS CDK 功能
AWS CDKGitHub 儲存庫
如需官方 AWS CDK GitHub儲存庫,請參閱 aws-cdk
由於 AWS CDK 是開放原始碼,因此團隊鼓勵您做出貢獻,使其成為更好的工具。如需詳細資訊,請參閱貢獻至 AWS 雲端開發套件 (AWS CDK)
AWS CDK API 參考
AWS CDK 建構程式庫提供 APIs來定義您的 CDK 應用程式,並將 CDK 建構新增至應用程式。如需詳細資訊,請參閱 AWS CDK API 參考。
建構程式設計模型
建構程式設計模型 (CPM) 將 AWS CDK 背後的概念延伸到其他網域。使用 CPM 的其他工具包括:
-
適用於 Terraform 的 CDK
(CDKtf) -
CDK for Kubernetes
(CDK8s) -
Projen
,用於建置專案組態
建構中樞
Construct Hub
後續步驟
若要開始使用 AWS CDK,請參閱 AWS CDK 入門。
進一步了解
若要繼續了解 AWS CDK,請參閱以下內容:
-
了解 AWS CDK 核心概念 – AWS CDK 的重要概念和術語。
-
AWS CDK 研討會
– 了解和使用 AWS CDK 的實作研討會。 -
AWS CDK 模式
– 無 AWS 伺服器架構模式的開放原始碼集合,由 AWS 專家為 AWS CDK 建置。 -
AWS CDK 程式碼範例
– 範例 AWS CDK 專案的GitHub儲存庫。 -
cdk.dev
– AWS CDK 的社群驅動中樞,包括社群Slack工作區。 -
絕佳的 CDK –
儲存GitHub庫,其中包含 AWS CDK 開放原始碼專案、指南、部落格和其他資源的精選清單。 -
AWS 解決方案建構 –
Vetted,組態基礎設施即程式碼 (IaC) 模式,可輕鬆組合到生產就緒的應用程式。 -
AWS 開發人員工具部落格
– 針對 AWS CDK 篩選的部落格文章。 -
AWS 堆疊溢位上的 CDK
– 在 上以 aws-cdk 標記的問題Stack Overflow。 -
適用於 AWSAWS Cloud9 的 CDK 教學課程 – 搭配 AWS Cloud9 開發環境使用 AWS CDK 的教學課程。
若要進一步了解 AWS CDK 的相關主題,請參閱以下內容:
-
AWS CloudFormation 概念 – 由於 AWS CDK 是為與 AWS CloudFormation 搭配使用而建置,因此建議您學習並了解 key AWS CloudFormation 概念。
-
AWS 詞彙表 – 跨 使用的關鍵術語定義 AWS。
若要進一步了解可用於簡化無伺服器應用程式開發和部署的 AWS CDK 相關工具,請參閱以下內容:
-
AWS 無伺服器應用程式模型
– 開放原始碼開發人員工具,可簡化並改善建置和執行無伺服器應用程式的體驗 AWS。 -
AWS Chalice
– 在 Python 中撰寫無伺服器應用程式的架構。