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
注意
执照