AWS Cloud開發套件(AWS CDK)是一個開源軟件開發框架,可在代碼中定義雲基礎架構,並通過AWS CloudFormation提供。
它提供了高級面向對象的抽象,以使用現代編程語言的力量迫切地定義AWS資源。使用CDK的基礎架構構造庫,您可以輕鬆地將AWS最佳實踐封裝在基礎架構定義中,並共享它,而不必擔心樣板邏輯。
CDK以以下語言可用:
JavaScript,Typescript(Node.js≥14.15.0)
我們建議在Active LTS中使用版本
Python(Python≥3.8)
Java(Java≥8和Maven≥3.5.4)
.net(.net≥6.0)
去(≥1.16.4)
第三方語言棄用:語言版本僅在供應商或社區共享的EOL(生命的終結)之前得到支持,並且可能會隨著事先通知而更改。
跳到:開發人員指南| API參考|入門|得到幫助|貢獻| RFCS |路線圖|更多資源
開發人員在其中一種支持的編程語言中使用CDK框架來定義可重複使用的雲組件稱為構造,這些組件被組合成堆棧,形成“ CDK應用程序”。
然後,他們使用AWS CDK CLI與CDK應用程序進行交互。 CLI允許開發人員合成諸如AWS雲形式模板之類的工件,將堆棧部署到開發AWS帳戶中,並與已部署的堆棧“差異”,以了解代碼更改的影響。
AWS構造庫包括一個用於每種AWS服務的模塊,其構造提供了豐富的API,這些API封裝瞭如何使用AWS的詳細信息。 AWS構造庫旨在減少整合各種AWS服務以實現AWS目標時所需的複雜性和膠合邏輯。
AWS構造庫中的模塊在我們構建時被指定為實驗。實驗模塊可能在任何釋放中都有破壞API的變化。 在指定模塊穩定後,它遵守語義版本,並且只有主要版本才能進行破壞。每個模塊的穩定性名稱都可以在其AWS CDK API參考的概述頁面上獲得。有關更多信息,請參閱《 CDK開發人員指南》中的版本控制。
有關詳細的演練,請參閱《 AWS CDK開發人員指南》中的教程。
從NPM安裝或更新AWS CDK CLI(需要Node.js≥14.15.0)。我們建議在Active LTS中使用版本
npm i -g aws -cdk
(請參閱手冊安裝以獲取從簽名的.zip文件安裝CDK)。
初始化一個項目:
mkdir hello-cdkcd hello-cdk CDK INIT Sample-App -language =打字稿
這創建了一個看起來像這樣的示例項目:
導出類Hellocdkstack擴展了CDK.STACK { 構造函數(範圍:cdk.app,id:string,props?:cdk.stackprops){super(scope,id,props); const Queue = new SQS.Queue(this,'Hellocdkqueue',{vistibilityTimeTimeTime out:cdk. duration。秒(300)}); const topic = new sns.topic(this,'hellocdktopic'); topic.AddSubScription(new subs.sqsssubscription(queue)); }}}
將其部署到您的帳戶:
CDK部署
使用cdk
命令行工具包與您的項目交互:
cdk deploy
:將您的應用部署到AWS帳戶中
cdk synth
:合成應用程序的AWS雲形式模板
cdk diff
:將您的應用與已部署的堆棧進行比較
與我們的團隊互動的最佳方法是通過Github。您可以打開一個問題,並從我們的一個模板中選擇錯誤報告,功能請求,文檔問題或指導。
如果您有AWS支持的支持計劃,則還可以創建一個新的支持案例。
您可能還會在這些社區資源上找到幫助:
查看API參考或開髮指南
cdk.dev中的#AWS-CDK Slack頻道
在堆棧溢出上詢問一個問題,並用aws-cdk
標記它
AWS CDK路線圖允許開發人員了解我們即將到來的功能和優先事項,以幫助他們計劃如何最好地利用CDK並確定為項目做出貢獻的機會。有關更多信息和常見問題,請參見Roadmap.md。
我們歡迎社區貢獻並提取請求。有關如何設置開發環境並提交代碼的信息,請參見貢獻。
該解決方案收集匿名操作指標,以幫助AWS提高CDK的質量和功能。有關更多信息,包括如何禁用此功能,請參閱《開發人員指南》。
CDK研討會
構建中心 - 查找和使用開源雲開發套件(CDK)庫
最佳實踐
使用AWS CDK開發雲應用程序的最佳實踐
在使用CDK方面創建基礎架構時,與最佳實踐保持一致
推薦的AWS CDK項目結構用於Python應用
在構造樞紐上發現構建庫的最佳實踐
所有有關AWS CDK的開發人員博客文章
CDK建築區- 由CDK團隊主持的Twitch Live編碼系列,第一季:
S1E1:觸發器(第1部分);參與者: @netanir, @eladb,@richardhboyd
S1E2:觸發器(第2部分);參與者: @netanir, @eladb,@iliapolo
S1E3:觸發器(第3部分);參與者: @netanir, @eladb,@iliapolo,@romainmuller
觸發器:加入我們時,我們實現觸發器,這是一種用於配置部署時間動作的構造。第1-3集:
S1E4:象徵深潛水;參與者: @netanir, @rix0rrr,@iliapolo,@romainmuller
S1E5:資產深入潛水;參與者: @netanir, @eladb,@jogold
S1E6:最佳實踐;參與者: @skinny85, @eladb, @rix0rrr, @alexpulver
S1E7:CDK團隊的提示和技巧;參與者:所有CDK團隊!
例子
ChangElog
注意
執照