这是 AWS CDK v2 开发者指南。旧版 CDK v1 于 2022 年 6 月 1 日进入维护阶段,并于 2023 年 6 月 1 日终止支持。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS CDK 版本控制
本主题提供有关 C AWS loud Development Kit (AWS CDK) 如何处理版本控制的参考信息。
版本号由三个数字版本部分组成:major.minor.patch,并严格遵守语义版本控制
次要版本和补丁版本则向后兼容。在具有相同主要版本的先前版本中编写的代码可以升级到相同主要版本内的新版本。其还将继续构建和运行,从而产生相同的输出。
AWS CDK CLI 兼容性
AWS CDK 主库 (aws-cdk-lib
) 的每个版本都与 AWS CDK 库发布时最新的 CDK CLI (aws-cdk-cli
) 版本兼容。它还与任何较新版本的 CDK CLI 兼容。CDK 库的每个版本都保持这种兼容性,直到该库的生命周期终止日期。因此,只要您使用的是受支持的 CDK 库版本,升级 CDK CLI 版本始终是安全的。
CDK 库的每个版本也可以使用早于 CDK 库发布时最新版本的 CDK CLI 版本。但是,这并不能保证。兼容性取决于 CDK 库的云程序集架构版本。 AWS CDK 在合成过程中生成云程序集,CDK CLI 使用它进行部署。定义云程序集格式的架构经过严格指定且受版本控制。因此,旧版本的 CDK CLI 需要支持 CDK 库的云装配架构版本才能兼容。
当 CDK 库所需的云装配版本与 CDK CLI 支持的版本不兼容时,您会收到如下错误消息:
Cloud assembly schema version mismatch: Maximum schema version supported is 3.0.0, but found 4.0.0. Please upgrade your CLI in order to interact with this app.
要解决此错误,请将 CDK CLI 更新到与所需云装配版本兼容的版本或最新可用版本。通常不建议使用替代方案(即降级应用程序使用的构造库模块)。
注意
有关协同工作的版本的确切组合的更多信息,请参阅aws-cdk-cli GitHub 存储库中的兼容性表
AWS 构造库版本控制
C AWS onstruct Library 中的模块在从概念发展到成熟的 API 时会经历不同的阶段。在后续版本的 AWS CDK 中,不同的阶段提供不同程度的 API 稳定性。
APIs 在主 AWS CDK 库中,是稳定的aws-cdk-lib
,并且该库是完全语义版本化的。该软件包包括所有 AWS 服务的 AWS CloudFormation (L1) 构造和所有稳定的更高级别 (L2 和 L3) 模块。(它还包括核心 CDK 类,例如App
和Stack
)。 APIs 在 CDK 的下一个主要版本发布之前,不会从这个软件包中删除(尽管它们可能会被弃用)。任何单独的 API 都不会发生重大变化。如果需要进行重大更改,将添加一个全新的 API。
对于已经包含在中的服务, APIs aws-cdk-lib
正在开发的新服务使用Beta<N>
后缀进行标识,后缀从 1 N
开始,随着新 API 的每一次重大更改而递增。 Beta<N>
APIs 永远不会被移除,只会被弃用,因此您的现有应用程序可以继续使用较新版本的。aws-cdk-lib
当认为该 API 稳定时,会添加一个不带 Beta<N>
后缀的新 API。
当 APIs 开始为以前只有 L1 的服务开发更高级别(L2 或 L3)时 APIs, APIs 这些 AWS 服务最初会分发到单独的包中。此类包的名称会带有“Alpha”后缀,其版本与和其兼容的第一个版本的 aws-cdk-lib
相匹配,并带有 alpha
子版本。当模块支持预期用例时, APIs 就会将其添加到aws-cdk-lib
。
语言绑定稳定性
随着时间的推移,我们可能会向 AWS CDK 添加对其他编程语言的支持。尽管所有语言中描述的 API 都相同,但 API 的表达方式因语言而异,并且可能会随着语言支持的发展而有所变化。因此,语言绑定会在一段时间内被视为试验性质,直到认为其可以用于生产。
语言 | 稳定性 |
---|---|
TypeScript |
稳定 |
JavaScript |
稳定 |
Python |
稳定 |
Java |
稳定 |
C#/.NET |
稳定 |
Go |
稳定 |