回滚应用程序升级 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink(Amazon MSF)之前称为 Amazon Kinesis Data Analytics for Apache Flink。

回滚应用程序升级

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

运行时升级成功,应用程序处于 RUNNING 状态,但是作业失败并持续重新启动

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

要将应用程序回滚到之前运行的版本,请使用 rollback-application AWS CLI 命令或 RollbackApplication API 操作。此 API 操作会回滚您执行的更改,这些更改生成最新版本。然后,它会使用最新的成功快照重新启动您的应用程序。

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

在此故障场景中,CloudFormation 将不会为您回滚应用程序。您必须更新 CloudFormation 模板以指向之前的运行时和之前的代码,从而强制 CloudFormation 更新应用程序。否则,CloudFormation 会假设您的应用程序在过渡到 RUNNING 状态时已经更新。

回滚卡在 UPDATING 状态的应用程序

如果您的应用程序在尝试升级后卡在 UPDATINGAUTOSCALING 状态,则 Amazon Managed Service for Apache Flink 提供 rollback-applications AWS CLI 命令或 RollbackApplications API 操作,可以将应用程序回滚到卡在 UPDATINGAUTOSCALING 状态之前的版本。此 API 会回滚您执行以导致应用程序卡在 UPDATINGAUTOSCALING 传递状态的更改。