

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 回滚应用程序升级
<a name="rollback"></a>

如果您的应用程序出现问题，或者发现应用程序代码在 Flink 版本之间存在不一致之处，则可以使用、 AWS CLI AWS CloudFormation、 AWS SDK 或进行回滚。 AWS 管理控制台以下示例显示在不同的故障场景中进行的回滚。

## 运行时升级成功，应用程序处于 `RUNNING` 状态，但是作业失败并持续重新启动
<a name="succeeded-restarting"></a>

假设您正在尝试在美国东部（弗吉尼亚州北部）将名为 `TestApplication` 的有状态应用程序从 Flink 1.15 升级到 Flink 1.18。但是，即使应用程序处于 `RUNNING` 状态，升级后的 Flink 1.18 应用程序仍无法启动或不断重新启动。这是一种常见的故障场景。为避免进一步的停机时间，我们建议您将应用程序立即回滚到之前运行的版本（Flink 1.15），然后再诊断问题。

要将应用程序回滚到之前运行的版本，请使用 rollback-app [licat](https://docs.aws.amazon.com/cli/latest/reference/kinesisanalyticsv2/rollback-application.html) ion AWS CLI 命令或 [RollbackApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_RollbackApplication.html)API 操作。此 API 操作会回滚您执行的更改，这些更改生成最新版本。然后，它会使用最新的成功快照重新启动您的应用程序。

我们强烈建议您在尝试升级之前创建现有应用程序的快照。这将有助于避免数据丢失或不得不重新处理数据。

在这种失败场景中， CloudFormation 将不会为您回滚应用程序。必须更新 CloudFormation 模板以指向之前的运行时和之前的代码 CloudFormation 才能强制更新应用程序。否则， CloudFormation假设您的应用程序在过渡到`RUNNING`状态时已更新。

## 回滚卡在 `UPDATING` 状态的应用程序
<a name="stuck-updating"></a>

如果您的应用程序在尝试升级后停留在`UPDATING`或`AUTOSCALING`状态，则适用于 Apache Flink 的亚马逊托管服务 Flink 会提供回[滚应用程序](https://docs.aws.amazon.com/cli/latest/reference/kinesisanalyticsv2/rollback-application.html) AWS CLI 命令或 [RollbackApplications](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_RollbackApplication.html)API 操作，该操作可以将应用程序回滚到卡住或状态之前的版本。`UPDATING` `AUTOSCALING`此 API 会回滚您执行以导致应用程序卡在 `UPDATING` 或 `AUTOSCALING` 传递状态的更改。