亚马逊AWS官方博客
宣布全面推出 Construct Hub 和 AWS Cloud Development Kit 版本 2
今天,我很高兴地宣布,Construct Hub 和 AWS Cloud Development Kit (AWS CDK) 版本 2 现已正式上市 (GA)。
AWS CDK 是一个开源框架,它使用熟悉的编程语言简化了与云资源的配合使用操作,这些编程语言为:C#、TypeScript、Java、Python 和 Go(在开发人员预览版中有提供)。在他们的应用程序中,开发人员使用称为构造的可重复使用的类型来创建和配置云资源,他们使用这一类型就像使用所选语言中的任何其他类型一样。也可以编写自定义构造,然后在团队和企业中共享。
随着今天新版本的正式发布,使用 CDK 定义云资源变得更加简单方便,而且 Construct Hub 也能够在更广泛的云开发社群中分享开源构造库。
AWS Cloud Development Kit (AWS CDK) 版本 2
AWS CDK 版本 2 侧重于提高使用 CDK 项目的开发人员的工作效率。在版本 1 中用于分发和使用适用于每个 AWS 服务的构造的各个包(库),都已整合到一个单一的包中。这简化了 CDK 应用程序中和发布构造库时的依赖项管理。它还使引用来自多个服务的架构的 CDK 项目更加方便,尤其是当这些服务具有对等依赖关系时(例如,需要使用 AWS Key Management Service (KMS) 密钥配置的 Amazon Simple Storage Service (Amazon S3) 存储桶)。
CDK 的版本 1 包含一些实验性的 API。随着时间的推移,根据社群的体验和反馈,其中一些 API 被标记为弃用,转而采用其他首选方法。版本 2 中删除了已弃用的 API,以帮助开发人员在使用构造属性和方法时更加清晰。此外,CDK 团队还采用了新的发布流程来创建和发布实验性构造,而无需将其包含在整体式 GA 包中。从版本 2 开始,整体式 CDK 包将只包含客户始终可以信赖的稳定 API。实验性 API 将以单独包的形式发布,这样团队和社群可以更轻松地对其进行修改,并确保客户不会招致意外的破坏性更改,这些更改在版本 1 中引起了一些问题。
您可以在开发人员指南中了解 AWS CDK 版本 2 中的所有更改,以及如何更新 CDK 应用程序以使用。
Construct Hub
Construct Hub 是一个单一的中心,开源社群、AWS 和云技术提供商可以在这里发现和共享所有 CDK 的构造库。当今最受欢迎的 CDK 是用于生成 AWS CloudFormation 模板的 AWS CDK;生成 Kubernetes 清单的 cdk8s;以及生成 Terraform JSON 文件的 cdktf。任何人都可以创建 CDK,而且随着其他基于构造的工具的发展,我们愿意添加这些工具!
截至本文发表时,Construct Hub 包含 700 多个 CDK 库(其中包括核心 AWS CDK 模块),帮助客户使用他们的首选编程语言、针对首选用例以及通过首选配置引擎(CloudFormation、Terraform 或 Kubernetes)构建他们的云应用程序。例如,有 99 个库用于处理容器,210 个库用于无服务器开发,53 个库用于网站,65 个库用于与云服务提供商(例如 Datadog、Logz.io、Cloudflare、Snyk 等)集成,以及数十个库用于与 Slack、Twitter、GitLab、Grafana、Prometheus、WordPress、Next.js 等集成。其中许多库由开源社群创建。
任何人都可向 Construct Hub 提供构造库。您希望共享的新库需要发布到 npm 公共注册表并贴标签。Construct Hub 将自动检测已发布的库,并让 Hub 上的使用者可以看到和发现这些库。使用者可以搜索和筛选构造库,以获取熟悉的技术、第三方集成、AWS 服务以及使用案例(如合规性、监控、网站、容器、无服务器等)。筛选器适合筛选发布商、语言、CDK 类型和关键字。下面的屏幕截图中显示,我正在搜索所有 CDK 中与数据库和 Kubernetes 相关的 .NET 和 TypeScript 库。我也可以筛选特定的 CDK 或 CDK 版本。
发布商决定他们的包应支持哪些编程语言。然后 Construct Hub 会自动为所有支持的语言生成 API 引用,并将作者提供的所有代码样本翻译成这些支持的语言。下面的屏幕截图显示了 cdk-spa-deploy 构造库的特定语言 API 文档示例,您可以使用它来部署单页 Web 应用程序 (SPA)。首先,为使用该库的 .NET 开发人员提供文档:
下面的第二张图片显示了为同个构造库生成的文档,但这次针对的是 TypeScript 开发人员:
所有发布到 Construct Hub 的构造库都必须是开源的。这使用户能够做出良好的判断并执行尽职调查,以验证库是否满足其安全性和合规性需求。他们对于在应用程序中使用的任何其他第三方包源也是如此处理。关于已发布的构造库的问题,您可以在该库的 GitHub 存储库中提出,方法是使用该库 Hub 条目中提供的便捷链接来完成。
Construct Hub 采用基于透明度的信任模型。用户可以通过单击 Hub 中的“举报滥用行为”链接来举报库是否存在滥用情况,AWS Support 团队将对问题展开调查,并在发现问题时从 Construct Hub 列表中删除违规的包。用户还可以通过单击“向 Construct Hub 提供反馈”链接向我们发送反馈,点击后用户便可在我们的 GitHub 存储库中打开一个问题。最后,同样重要的一点是,他们可以单击“向发布者提供反馈”,这一操作将重定向到发布商随包提供的存储库。
如同 AWS CDK,Construct Hub 也是开源的,是作为一个构造来构建的,实际上它本身也可以在 Construct Hub 上使用! 如有兴趣,您可以了解 CDK 团队如何使用 CDK 在其 GitHub 存储库中开发 Hub。
立即开始使用 AWS CDK 版本 2 和 Construct Hub
如果您已经使用 AWS Cloud Development Kit (AWS CDK) 的第 1 版构建了 CDK 应用程序来定义云基础设施,那么建议您查看第 2 版记录的更改,了解新版本如何帮助简化未来的项目设置。而且,如果您有兴趣在更广泛的社群共享新构造,请 使用 Construct Hub。