将您的应用程序升级到新的 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 更新应用程序” 操作。

  • 使用 CloudFormation (CFN)。

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

  • 使用 AWS 软件开发工具包。

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

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

以下示例显示了使用升级美国东部(弗吉尼亚北部)名为 UpgradeTest Flink 1.18 的RUNNING州的应用程序, AWS CLI 以及使用最新快照启动升级后的应用程序。

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 自动创建的最新快照恢复应用程序。