这是 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 CLI 始终与语义上较低或相等版本号的构造库兼容。因此,升级始终是安全的 AWS CDK CLI 在同一个主要版本中。
的 AWS CDK CLI 并不总是与语义上更高版本的构造库兼容。兼容性取决于两个组件是否采用相同的云程序集架构版本。该 AWS CDK 框架在合成过程中生成云组件,并且 AWS CDK CLI 消耗它进行部署。定义云程序集格式的架构经过严格指定且受版本控制。
AWS 使用给定云装配架构版本的构造库与兼容 AWS CDK CLI 使用该架构版本或更高版本的版本。这可能包括发布的 AWS CDK CLI 早于给定的构造库版本。
当构造库所需的云装配版本与构造库支持的版本不兼容时 AWS 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.
要解决此错误,请更新 AWS CDK CLI 到与所需云程序集版本兼容的版本,或者到最新的可用版本。通常不建议使用替代方案(即降级应用程序使用的构造库模块)。
注意
有关云程序集架构的更多详细信息,请参阅 Cloud Assembly Versioning
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 | 稳定 |