

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

# 使用 Apache Flink 的就地版本升级来升级应用程序
<a name="upgrading-applications"></a>

在开始之前，我们建议您观看以下视频：[就地版本升级](https://www.youtube.com/watch?v=f1qGGdaP2XI)。

要对 Apache Flink 执行就地版本升级，你可以使用 AWS CLI、 AWS CloudFormation、 AWS SDK 或。 AWS 管理控制台您可以将此功能与在 Managed Service for Apache Flink 中使用的任何现有应用程序（处于 `READY` 或 `RUNNING` 状态）结合使用。它使用 UpdateApplication API 来添加更改 Flink 运行时的功能。

## 升级之前：更新 Apache Flink 应用程序
<a name="before-upgrading"></a>

在编写 Flink 应用程序时，您可以将它们与其依赖项捆绑到应用程序 JAR 中，然后将该 JAR 上传到您的 Amazon S3 存储桶。然后，Amazon Managed Service for Apache Flink 将在您选择的新 Flink 运行时中运行该作业。您可能需要更新应用程序，以实现与要升级到的目标 Flink 运行时的兼容性。Flink 版本之间可能存在不一致性，从而导致版本升级失败。最常见的情况是，这将包括源（入口）或目的地（接收器、出口）的连接器以及 Scala 依赖项。Managed Service for Apache Flink 中的 Flink 1.15 及更高版本与 Scala 无关，并且您的 JAR 必须包含计划使用的 Scala 版本。

**更新应用程序**

1. 阅读 Flink 社区关于升级有状态应用程序的建议。请参阅[升级应用程序和 Flink 版本](https://nightlies.apache.org/flink/flink-docs-master/docs/ops/upgrading/)。

1. 阅读已知问题和限制列表。请参阅 [应用程序升级的注意事项和已知问题](precautions.md)。

1. 更新您的依赖项并在本地测试您的应用程序。这些依赖项通常是：

   1. Flink 运行时和 API。

   1. 建议用于 Flink 运行时的连接器。您可以在要更新至的特定运行时的[发布版本](https://docs.aws.amazon.com/managed-flink/latest/java/release-version-list.html)中找到这些内容。

   1. Scala – Apache Flink 从 Flink 1.15 开始（包括 Flink 1.15）就与 Scala 无关。必须在应用程序 JAR 中包含要使用的 Scala 依赖项。

1. 在 zipfile 上构建新的应用程序 JAR，并将其上传至 Amazon S3。我们建议您使用与先前 JAR/zipfile 不同的名称。如果您需要回滚，则将使用此信息。

1. 如果您正在运行有状态应用程序，我们强烈建议您创建当前应用程序的快照。如果在升级期间或升级之后遇到问题，快照可让您有状态地回滚。