这是 AWS CDK v2 开发者指南。旧版 CDK v1 于 2022 年 6 月 1 日进入维护阶段,并于 2023 年 6 月 1 日终止支持。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
本主题提供有关如何 AWS Cloud Development Kit (AWS CDK) 处理版本控制的参考信息。
版本号由三个数字版本部分组成:major.minor.patch,并严格遵守语义版本控制
次要版本和补丁版本则向后兼容。在具有相同主要版本的先前版本中编写的代码可以升级到相同主要版本内的新版本。其还将继续构建和运行,从而产生相同的输出。
AWS CDK CLI 兼容性
主 AWS CDK 库 (aws-cdk-lib
) 的每个版本都与 AWS CDK CLI (aws-cdk-cli
) 在 CDK 库发布时为最新版本。它还与任何较新版本的 CDK 兼容 CLI。 CDK 库的每个版本都保持这种兼容性,直到该库的生命周期终止日期。因此,只要您使用的是受支持的 CDK 库版本,升级 CDK 始终是安全的 CLI 版本。
CDK 库的每个版本也可以与 CDK 一起使用 CLI 版本早于 CDK 库发布时的当前版本。但是,这并不能保证。兼容性取决于 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 构造库版本控制
C AWS onstruct Library 中的模块在从概念发展到成熟的 API 时会经历不同的阶段。在的后续版本中,不同的阶段提供不同程度的 API 稳定性 AWS CDK。
APIs 在主 AWS CDK 库中,是稳定的aws-cdk-lib
,并且该库是完全语义版本化的。该软件包包括所有 AWS 服务的 AWS CloudFormation (L1) 构造和所有稳定的更高级别 (L2 和 L3) 模块。(它还包括核心 CDK 类,例如App
和Stack
)。 APIs 在 CDK 的下一个主要版本发布之前,不会从这个软件包中删除(尽管它们可能会被弃用)。任何单独的 API 都不会发生重大变化。如果需要进行重大更改,将添加一个全新的 API。
对于已经包含在中的服务, APIs aws-cdk-lib
正在开发的新服务使用Beta
后缀进行标识,后缀从 1 N
N
开始,随着新 API 的每一次重大更改而递增。 Beta
APIs 永远不会被移除,只会被弃用,因此您的现有应用程序可以继续使用较新版本的。N
aws-cdk-lib
当认为该 API 稳定时,会添加一个不带 Beta
后缀的新 API。N
当 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 | 稳定 |