将您的应用程序升级到新的 Apache Flink 版本 - Managed Service for Apache Flink

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

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

将您的应用程序升级到新的 Apache Flink 版本

您可以使用 UpdateApplication 操作升级 Flink 应用程序。

您可以通过多种方式调用 UpdateApplication API:

  • 使用 AWS 管理控制台 上的现有配置工作流程。

    • 转至 AWS 管理控制台 上的应用程序页面

    • 选择配置

    • 选择新的运行时和要从中启动的快照,也称为还原配置。使用最新设置作为还原配置,从最新的快照启动应用程序。指向 Amazon S3 上新升级的应用程序 JAR/zip。

  • 使用 AWS CLI update-application 操作。

  • 使用 CloudFormation(CFN)。

    • 更新 RuntimeEnvironment 字段。CloudFormation 以前会删除该应用程序并创建一个新应用程序,这会导致您的快照和其他应用程序历史记录丢失。现在,CloudFormation 会就地更新您的运行时环境,并且不会删除您的应用程序。

  • 使用 AWS SDK

    • 有关您选择的编程语言,请参阅 SDK 文档。参阅 UpdateApplication

您可以在应用程序处于 RUNNING 状态或应用程序在 READY 状态中停止时执行升级。Amazon Managed Service for Apache Flink 会进行验证,以确认原始运行时版本和目标运行时版本之间的兼容性。您在 RUNNING 状态下执行 UpdateApplication 时,会执行此兼容性检查;或者如果在 READY 状态下升级,则在下一次 StartApplication 时运行此兼容性检查。

以下示例展示了如何使用 AWS CLI 将美国东部(弗吉尼亚州北部)中处于 RUNNING 状态且名为 UpgradeTest 的应用程序升级到 Flink 1.18,并从最新的快照启动升级后的应用程序。

aws --region us-east-1 kinesisanalyticsv2 update-application \ --application-name UpgradeTest --runtime-environment-update "FLINK-1_18" \ --application-configuration-update '{"ApplicationCodeConfigurationUpdate": '\ '{"CodeContentUpdate": {"S3ContentLocationUpdate": '\ '{"FileKeyUpdate": "flink_1_18_app.jar"}}}}' \ --run-configuration-update '{"ApplicationRestoreConfiguration": '\ '{"ApplicationRestoreType": "RESTORE_FROM_LATEST_SNAPSHOT"}}' \ --current-application-version-id ${current_application_version}
  • 如果您启用了服务快照并希望从最新快照继续运行应用程序,Amazon Managed Service for Apache Flink 会验证当前 RUNNING 应用程序的运行时是否与所选目标运行时兼容。

  • 如果您指定用于继续目标运行时的快照,则 Amazon Managed Service for Apache Flink 会验证目标运行时是否与指定的快照兼容。如果兼容性检查失败,则您的更新请求将被拒绝,并且您的应用程序将保持处于RUNNING 状态。

  • 如果您选择在没有快照的情况下启动应用程序,则 Amazon Managed Service for Apache Flink 不会运行任何兼容性检查。

  • 如果升级后的应用程序失败或卡在传递的 UPDATING 状态,请按照 回滚应用程序升级 部分中的说明恢复正常状态。

运行中有状态应用程序的处理流程

下图显示了在运行期间升级应用程序的建议工作流程。假设应用程序是有状态的,并且您已启用快照。对于此工作流程,在更新时,您可以从更新之前由 Amazon Managed Service for Apache Flink 自动创建的最新快照恢复应用程序。

以下示例展示如何使用 AWS CLI 将美国东部(弗吉尼亚州北部)中处于 READY 状态且名为 UpgradeTest 的应用程序升级到 Flink 1.18。由于应用程序未运行,因此没有用于启动应用程序的指定快照。您可以在发出启动应用程序请求时指定快照。

aws --region us-east-1 kinesisanalyticsv2 update-application \ --application-name UpgradeTest --runtime-environment-update "FLINK-1_18" \ --application-configuration-update '{"ApplicationCodeConfigurationUpdate": '\ '{"CodeContentUpdate": {"S3ContentLocationUpdate": '\ '{"FileKeyUpdate": "flink_1_18_app.jar"}}}}' \ --current-application-version-id ${current_application_version}
  • 您可以将处于 READY 状态的应用程序的运行时更新为任何 Flink 版本。Amazon Managed Service for Apache Flink 在您启动应用程序之前不会运行任何检查。

  • Amazon Managed Service for Apache Flink 仅对您为启动应用程序而选择的快照运行兼容性检查。这些是遵循 Flink 兼容性表的基本兼容性检查。它们只会检查创建快照时使用的 Flink 版本和作为目标的 Flink 版本。如果所选快照的 Flink 运行时与应用程序的新运行时不兼容,则启动请求可能会被拒绝。

就绪状态应用程序的处理流程

下图显示升级就绪状态应用程序的建议工作流程。假设应用程序是有状态的,并且您已启用快照。对于此工作流程,在更新时,您可以从在应用程序停止由 Amazon Managed Service for Apache Flink 自动创建的最新快照恢复应用程序。