一般問題

問:什麼是 AWS CDK?
AWS 雲端開發套件 (AWS CDK) 是開放原始碼軟體開發架構,使用現代程式設計語言將雲端基礎設施定義為程式碼,並透過 AWS CloudFormation 進行部署。

問:AWS CDK CLI 可以執行哪些操作?
您可以使用 AWS CDK Command Line Interface (CLI) 與 CDK 應用程式互動。CDK CLI 可讓您列出 CDK 應用程式定義的堆疊、將堆疊合成為 CloudFormation 範本、判斷執行堆疊執行個體與 CDK 程式碼中定義的堆疊之間的差異,以及將堆疊部署至任何公有 AWS 區域。

問:AWS CDK 如何運作?
您使用 AWS CDK 架構來編寫 AWS CDK 專案,然後執行該專案以產生 CloudFormation 範本。您可以使用 AWS CDK 命令列或持續交付系統執行 AWS CDK 專案。

問:如何開始使用 AWS CDK?
要開始使用 AWS CDK 最好的方法,就是仔細閱讀 AWS CDK 開發人員指南的入門部分。您可以在幾分鐘內定義及部署您的第一個 AWS CDK 應用程式。如需更多深入引導教學,請查看 https://CDKworkshop.com

問:是否有範例 AWS CDK 應用程式可以協助我開始?
是,您可以在https://github.com/aws-samples/aws-cdk-examples 找到多個以不同程式設計語言撰寫的 AWS CDK 範例。AWS 開發人員指南也包含範例,請前往 https://docs.aws.amazon.com/cdk/latest/guide/examples.html

問:為什麼需要安裝 JavaScript 執行時間才能使用 AWS CDK?
AWS 使用 TypeScript 建置 AWS 建構程式庫套件的商業邏輯,並為每個支援的程式設計語言提供對應的項目。這可確保 AWS CDK 建構行為在每個語言都保持一致,並允許提供一組完整、適用於所有語言的建構套件。您在 AWS CDK 專案編寫的程式碼都是您偏好之程式設計語言的原生程式碼,而 JavaScript 執行時間則是程式設計體驗的實作細節。您可以參考 https://github.com/aws/jsii 中的 jsii 專案。

問:哪裡可以找到 AWS CDK 原始程式碼?
AWS CDK 程式碼是開放原始碼,可在 GitHub 取得,網址為 https://github.com/awslabs/aws-cdk

問:我如何將 CDK 應用程式從版本 1 遷移至版本 2?
若要將應用程式遷移至 AWS CDK v2,請先在 cdk.json 中更新功能旗標。然後根據其程式設計語言的需要更新應用程式的相依關係和匯入。您可以在此進一步了解︰https://docs.aws.amazon.com/cdk/latest/guide/work-with-cdk-v2.html

問:我可以如何做出貢獻?
我們正在公開開發 AWS CDK,歡迎任何人為程式碼基底做出貢獻。要進一步了解,請前往 https://github.com/awslabs/aws-cdk/blob/master/CONTRIBUTING.md

問:AWS CDK 支援哪些程式設計語言?
AWS CDK 一般以 JavaScript、TypeScript、Python、Java、C# 和 Go 提供 (開發人員預覽版)。我們正在計畫未來推出其他語言的 AWS CDK 繫結,請於 GitHub 為您的最愛投票

問:我可以在哪些區域使用 AWS CDK?
AWS CDK 可以在所有公有區域定義及部署 AWS 資源。由於 AWS CDK 使用 CloudFormation 服務,請參閱區域產品與服務以了解每個 AWS 區域可用之特定資源的詳細資訊。

問:AWS CDK 是否有任何資源限額或限制?
由於 AWS CDK 使用 CloudFormation,因此 AWS CDK 應用程式需遵守與 CloudFormation 服務相同的限制。

問:AWS CDK 和 AWS Solutions Constructs 之間的關係為何?
AWS Solutions Constructs 是 AWS CDK 的開放原始碼程式庫擴充功能。AWS Solutions Constructs 為您提供大量經過審查的多服務架構模式,這些模式都是使用 AWS Well-Architected Framework 確立的最佳實務建置而成。必須先安裝 AWS CDK,才能使用 AWS Solutions Constructs。如需如何將 AWS Solutions Constructs 新增至 AWS CDK 環境的指示,請參閱我們的開發指南

AWS 建構程式庫

問:什麼是 AWS 建構程式庫?
AWS CDK 建構在 AWS 建構程式庫中交付,並代表抽象的雲端基礎設施邏輯,經過封裝後即可重複使用。建構可以在本機定義或發佈至套件管理員 (例如 npm、Maven、NuGet 或 PyPI) 以便在組織間共享。

問:AWS 建構程式庫提供哪些服務?
我們為許多常用的 AWS 服務和功能提供豐富、高級的建構,並完整涵蓋低層級的 CloudFormation 資源,包含剛推出不久的新資源。每次 CloudFormation 規格變更時會自動產生資源級 API,讓 AWS 建構程式庫能夠處於最新狀態。除了這些自動產生的 API 之外,我們還提供手動、較高層級的抽象,使其更容易與每個服務搭配運作。我們還沒有為每個 AWS 服務提供這種高階、方便的抽象,但我們一直在增加新功能,專注在現代雲端應用程式中最常用的服務。瀏覽 AWS 建構程式庫 API 參考以進一步了解。

問:我需要等待多久,AWS CDK 才會支援 CloudFormation 新增的功能?
透過將發佈不久的 CloudFormation 新功能新增到 AWS CDK,我們可保持 AWS 建構程式庫與 CloudFormation 資源規格的同步。

問:如何與我的團隊共享及管理 AWS CDK 建構?
AWS CDK 建構程式庫就如同任何其他程式庫。它們透過您使用的程式設計語言套件管理員加以使用,讓這些程式庫保持在最新狀態是日常工作流程的一部分。所有套件都支援語意版本控制,讓您針對何時移轉到新基礎設施模型做出理性的選擇。

CloudFormation 和 SAM

問:AWS CDK 和 CloudFormation 之間的關係為何?
您可以將 AWS CDK 視為以開發人員為中心的工具組,它利用現代程式設計語言的完整功能,將您的 AWS 基礎設施定義為程式碼。當 AWS CDK 應用程式執行時,它們會編譯為完整格式的 CloudFormation JSON/YAML 範本,然後提交至 CloudFormation 服務進行佈建。由於 AWS CDK 利用 CloudFormation,您仍然可以享有 CloudFormation 提供的所有優點,例如安全部署、自動回復和偏離偵測。

問:AWS CDK 和AWS SAM 之間的關係為何?
AWS Serverless Application Model 和 AWS CDK 都將 AWS 基礎設施抽象化為程式碼,讓您更容易定義雲端基礎設施。AWS SAM 特別專注於無伺服器使用案例和架構,並可讓您在緊密的宣告式 JSON/YAML 範本中定義基礎設施。AWS CDK 在所有 AWS 服務提供廣泛的涵蓋範圍,並可讓您以現代程式設計語言 (例如 TypeScript、Python、C# 和 Java) 定義雲端基礎設施。AWS SAM 和 AWS CDK 都利用 CloudFormation 做為基礎設施堆疊的佈建引擎。

如果您偏好在簡潔的宣告式範本中定義無伺服器基礎設施,SAM 更適合您。如果您想要以熟悉的程式設計語言定義 AWS 基礎設施,我們鼓勵您試用 AWS CDK。不管是哪種案例,您都可以透過 CloudFormation 依賴可重複、安全的基礎設施部署。

問:是否可以使用 AWS SAM CLI 在本機測試以 AWS CDK 定義的 Lambda 函數?
是,您可以在本機將 AWS CDK 應用程式合成為 CloudFormation 範本,然後在 SAM CLI 參考產生的 AWS Lambda 處理常式 ID。如需更多詳細資訊,請參閱 CDK 開發人員指南中的 SAM CLI 區段。

費用

問:AWS CDK 根據哪一項授權進行分發?
AWS CDK 根據 Apache 授權,版本 2.0 進行分發。如需詳細資訊,請參閱授權聲明

問:AWS CDK 的費用為何?
AWS CDK 無須額外收費。使用 AWS CDK,以手動建立資源的相同方式建立的 AWS 資源 (例如 Amazon EC2 執行個體、Elastic Load Balancing 負載平衡器),需支付相關費用。您只需按實際用量付費;沒有最低費用,也不需要前期承諾。

查看產品功能

瀏覽 AWS CDK 功能頁面

進一步了解 
註冊免費帳戶

立即存取 AWS 免費方案。 

註冊 
文件

透過開發者指南進一步了解 AWS CDK

進一步了解