AWS CLI 版本 2 的迁移指南 - AWS Command Line Interface

AWS CLI 版本 2 的迁移指南

本节包含将 AWS CLI 版本 1 更新为 AWS CLI 版本 2 的说明。AWS CLI 版本 2 建立在 AWS CLI 版本 1 的基础上,包括基于社区反馈的功能和增强功能。AWS CLI 版本 2 是 AWS CLI 的最新主版本,支持所有最新功能。版本 2 中引入的某些功能未向后移植到版本 1,您必须升级才能访问这些功能。

为防止出现意外问题,在迁移至版本 2 之前,请了解这两个版本之间的区别。AWS CLI 版本 2 包括的新功能和更改可能要求您更新脚本或命令以实现向后兼容性。

AWS CLI 版本 1 和 2 使用相同的 aws 命令名称。如果您安装了两个版本,电脑将使用在搜索路径中找到的第一个版本。这可能会导致您的 aws 命令名调用旧 AWS CLI 版本,即使您安装了新版本也是如此。

要更新到 AWS CLI 版本 2,请按照以下说明之一进行操作:

使用 AWS CLI 迁移工具减少损坏

AWS CLI 版本 1 和 AWS CLI 版本 2 之间的行为有所不同,这可能需要您更新脚本或命令。在不验证现有脚本是否已安全迁移的情况下升级到 AWS CLI 版本 2,可能会在使用 AWS CLI 版本 2 运行脚本时遭遇意外影响,例如对 AWS 账户中的资源进行意外的更改。

您可以使用两种 AWS 拥有的工具来指导迁移。无论您使用哪种工具,我们都建议您参考 AWS CLI 版本 2 中的新功能和变化指南中的 AWS CLI 版本 1 和 AWS CLI 版本 2 之间的突破性更改

升级调试模式

升级调试模式是 AWS CLI 版本 1 中的一项功能,在版本 1.44.0 及更高版本中可用。启用此功能后,假设执行环境保持不变,则系统会检查您执行的每个 AWS CLI 命令,以确定它在 AWS CLI 版本 2 中是否可能有不同的行为。如果执行的命令在 AWS CLI 版本 2 中具有不同的行为,则命令输出旁边将显示一条警告,其中包含建议的操作,可以采取这些操作在 AWS CLI 版本 2 中保留 AWS CLI 版本 1 行为。

使用升级调试模式来指导迁移的主要原因是,此模式具有很高的覆盖范围,可以检测命令是否会面临行为变化。AWS CLI 版本 1 和 AWS CLI 版本 2 之间的突破性更改中描述的 15 个破坏性更改中有 14 个可以在升级调试模式下检测到。有关此功能的局限性,请参阅使用升级调试模式将 AWS CLI 版本 1 升级到 AWS CLI 版本 2 中的限制。另一方面,使用升级调试模式的主要缺点是其输出仅在其执行环境中相关;如果迁移到 AWS CLI 版本 2 后,环境中的任何 AWS CLI 配置设置发生变化,则仍可能发生破坏性更改,而您应该在更新后的环境中使用升级调试模式进行重新验证。

AWS CLI v1 到 v2 迁移工具

AWS CLI v1 到 v2 迁移工具是一个独立的工具,可以与 Python 3.9 及更高版本一起使用。此工具是一个独立于 AWS CLI 运行的静态 linter。它会检查包含 AWS CLI 版本 1 命令的 bash 脚本,这些命令在 AWS CLI 版本 2 中可能具有不同的行为。对于它检测到在 AWS CLI 版本 2 中可能具有不同行为的大多数命令,它可以自动更新脚本中的命令,以便在 AWS CLI 版本 2 中保留 AWS CLI 版本 1 行为。

使用 AWS CLI v1 到 v2 迁移工具来指导迁移的主要原因是,它可以自动更新您的脚本,以便在 AWS CLI 版本 2 中保留 AWS CLI 版本 1 行为,从而节省您自行进行更新的时间和精力。另一方面,使用迁移工具的主要缺点是,它检测命令是否会面临行为变化的覆盖范围较小。作为一个静态工具,它不检查在运行时确定的行为变化。

在升级调试模式与 AWS CLI v1 到 v2 迁移工具之间进行选择

下表重点介绍了升级调试模式与 AWS CLI v1 到 v2 迁移工具之间的主要区别,可用于协助指导您为自己的使用案例选择正确的工具。

升级调试模式 AWS CLI v1 到 v2 迁移工具
检测 AWS CLI 版本 1 和 AWS CLI 版本 2 之间的 15 个破坏性更改中的 14 个。 检测 AWS CLI 版本 1 和 AWS CLI 版本 2 之间的 15 个破坏性更改中的 7 个。
与任何可以运行 AWS CLI 的终端程序兼容。 仅支持检查 bash 脚本。
需要 AWS CLI 版本 1、版本 1.44.0 或更高版本。 独立于 AWS CLI 运行;它不要求安装 AWS CLI。
必须进行手动修复,才能在 AWS CLI 版本 2 中保留 AWS CLI 版本 1 行为。 自动修复它检测到的大多数 AWS CLI 版本 1 命令,这些命令在 AWS CLI 版本 2 中可能有不同的行为。
检测结果和建议的修复仅与执行它的执行环境(即 AWS CLI 配置)有关。 检测结果和建议的修复与环境无关。
需要执行每条被测的 AWS CLI 命令以了解行为变化。 不需要执行任何 AWS CLI 命令。对于每个 bash 脚本只需要执行一次。
正好有 5 个它将输出误报检测结果的已知情况。 正好有 3 个它将输出误报检测结果的已知情况。

下表显示了这两个迁移工具中的每一个工具支持哪些 AWS CLI 版本 1 和 AWS CLI 版本 2 之间的突破性更改

此部分中的其他主题