通过回滚撤消更改
您可以回滚仍在进行的实例刷新。完成后,您无法将其回滚。但是,您可以通过开始新的实例刷新来再次更新您的自动扩缩组。
回滚时,Amazon EC2 Auto Scaling 会替换到目前为止已部署的实例。新实例与您在启动实例刷新之前保存在自动扩缩组中的配置相匹配。
Amazon EC2 Auto Scaling 提供了以下回滚方式:
-
手动回滚:手动开始回滚,以撤消部署到回滚点的内容。
-
自动回滚:如果由于某种原因实例刷新失败,Amazon EC2 Auto Scaling 会自动撤消已部署的内容。
先决条件
要使用回滚功能,您必须执行以下操作:
-
指定所需的配置。
-
确保您上次保存在自动扩缩组中的配置处于稳定状态。如果未处于稳定状态,回滚工作流程仍会发生,但最终会失败。在您解决问题之前,自动扩缩组可能处于失败状态,无法再成功启动实例。这可能会影响服务或应用程序的可用性。
-
确保可以回滚到自动扩缩组的当前启动模板。如果自动扩缩组的启动模板或启动模板版本不兼容,则在启用自动回滚的情况下开始手动回滚或实例刷新时会收到错误。不兼容的启动模板使用 Amazon Systems Manager Parameter Store 中的 AMI 别名。不兼容的启动模板版本包括
$Latest或$Default。
手动开始回滚(控制台)
手动开始实例刷新回滚
访问 https://console.aws.amazon.com/ec2/
,打开 Amazon EC2 控制台,然后从导航窗格中选择 Auto Scaling Groups(Auto Scaling 组)。 -
选中 Auto Scaling 组旁边的复选框。
-
在实例刷新选项卡的活跃实例刷新中,依次选择操作、开始回滚。
-
当系统提示进行确认时,选择 Confirm。
手动开始回滚(Amazon CLI)
手动开始实例刷新回滚
使用来自 Amazon CLI 的 rollback-instance-refresh 命令,并提供自动扩缩组名。
aws autoscaling rollback-instance-refresh --auto-scaling-group-namemy-asg
输出示例:
{
"InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b"
}
提示
如果此命令引发错误,请确保您已在本地将 Amazon CLI 更新到最新版本。
使用自动回滚启动实例刷新
默认情况下,如果实例刷新失败,则不会回滚其应用到新实例的更改。您可以更改行为,以便在实例刷新失败时进行回滚。
本节包含使用自动回滚启动实例刷新的 Amazon CLI 说明。有关如何使用控制台的说明,请参阅启动实例刷新(控制台)。
使用自动回滚启动实例刷新(Amazon CLI)
使用 start-instance-refresh 命令,并将首选项中的自动回滚选项设置为 true。此外,提供自动扩缩组名称和所需的配置。
aws autoscaling start-instance-refresh --cli-input-json file://config.json
config.json 的内容。
{ "AutoScalingGroupName": "my-asg", "DesiredConfiguration": { "LaunchTemplate": { "LaunchTemplateId": "lt-068f72b729example", "Version": "$Default" } }, "Preferences": { "AutoRollback": true } }
如果成功,该命令将返回类似于以下内容的输出。
{
"InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b"
}
提示
如果此命令引发错误,请确保您已在本地将 Amazon CLI 更新到最新版本。