

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

# 系统回滚最佳实践
<a name="troubleshooting-system-rollback"></a>

借助 Amazon Managed Service for Apache Flink 中的自动系统回滚和操作可见性功能，您可以识别和解决应用程序存在的问题。

## 系统回滚
<a name="troubleshooting-unsupported-kinesis-connectors-error"></a>

如果您的应用程序更新或扩展操作因客户错误（例如代码错误或权限问题）而失败，则在您已选择启用此功能时，Amazon Managed Service for Apache Flink 将自动尝试回滚到以前的运行版本。有关更多信息，请参阅 [为 Managed Service for Apache Flink 应用程序启用系统回滚](how-system-rollbacks.md)。如果此自动回滚失败，或者您尚未选择加入或选择退出，则您的应用程序将进入 `READY` 状态。若要更新应用程序，请完成以下步骤：   查看 Amazon Managed Service for Apache Flink 控制台或使用 `DescribeApplicationOperation` API 查看错误描述，了解操作失败的原因。   要查看完整的错误堆栈，请使用 [Cloudwatch 日志](https://docs.aws.amazon.com/managed-flink/latest/java/logging.html)。   常见问题包括权限不足、代码更改不兼容或基础设施配置错误。解决潜在问题。   使用 `UpdateApplicaton` API 重新部署您的新应用程序版本。   

## 手动回滚
<a name="troubleshooting-unsupported-kinesis-connectors-error"></a>

如果应用程序长时间处于停滞状态，或者应用程序已成功过渡到 `Running` 状态，但您看到下游问题（例如在已成功更新的 Flink 应用程序中处理错误），则可以使用 `RollbackApplication` API 手动回滚应用程序。

1. 调用 `RollbackApplication` - 这将恢复到之前的运行版本并还原之前的状态。

1. 使用 `DescribeApplicationOperation` API 监控回滚操作。

1. 如果回滚失败，请使用之前的系统回滚步骤。

## 操作可见性
<a name="troubleshooting-unsupported-kinesis-connectors-error"></a>

`ListApplicationOperations` API 显示您的应用程序上所有客户和系统操作的历史记录。

1. 从列表中获取失败操作的 *operationId*。

1. 调用 `DescribeApplicationOperation` 并查看状态和 *statusDescription*。

1. 如果操作失败，描述将指出需要调查的潜在错误。

**常见的错误代码错误：**使用回滚功能恢复到上一个工作版本。解决错误并重试更新。

**权限问题：**使用 `DescribeApplicationOperation` 查看所需的权限。更新应用程序权限并重试。

**适用于 Apache Flink 的亚马逊托管服务服务问题：**查看 AWS Health Dashboard 或提交支持案例。