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

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

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

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

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

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

  • 使用上的现有配置工作流程 AWS Management Console。

    • 转到您的应用程序页面,网址为 AWS Management Console.

    • 选择 配置

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

  • 使用 AWS CLI 更新应用程序操作。

  • 使用 AWS CloudFormation (CFN)。

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

  • 使用 AWS SDK.

您可以在应用程序RUNNING处于状态或应用程序处于READY停止状态时执行升级。适用于 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}
  • 如果您启用了服务快照并希望从最新快照继续应用程序,则适用于 Apache Flink 的亚马逊托管服务会验证当前RUNNING应用程序的运行时是否与选定的目标运行时兼容。

  • 如果您指定了用于继续目标运行时间的快照,则 Amazon Apache Flink 托管服务会验证目标运行时是否与指定的快照兼容。如果兼容性检查失败,则您的更新请求将被拒绝,并且您的应用程序将RUNNING保持不变。

  • 如果您选择在没有快照的情况下启动应用程序,则适用于 Apache Flink 的亚马逊托管服务不会运行任何兼容性检查。

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

运行状态应用程序的流程流

下图显示了在运行时升级应用程序的推荐工作流程。我们假设应用程序是有状态的,并且您启用了快照。对于此工作流程,在更新时,您可以从更新之前由 Amazon 托管服务 Apache Flink 自动拍摄的最新快照恢复应用程序。

以下示例显示了使用升级位于美国东部(弗吉尼亚北部)名为 UpgradeTest Flink 1.18 的READY州的应用程序。 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"}}}}' \ --current-application-version-id ${current_application_version}
  • 您可以将READY处于状态的应用程序的运行时更新为任何 Flink 版本。Apache Flink 版的亚马逊托管服务在您启动应用程序之前不会运行任何检查。

  • 适用于 Apache Flink 的亚马逊托管服务仅对您为启动应用程序而选择的快照运行兼容性检查。这些是 Flink 兼容性表之后的基本兼容性检查。他们只会检查拍摄快照时使用的 Flink 版本和你瞄准的 Flink 版本。如果所选快照的 Flink 运行时与应用程序的新运行时不兼容,则启动请求可能会被拒绝。

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

下图显示了在就绪状态下升级应用程序的推荐工作流程。我们假设应用程序是有状态的,并且您启用了快照。对于此工作流程,在更新时,您可以从应用程序停止时由适用于 Apache Flink 的 Amazon 托管服务自动拍摄的最新快照恢复应用程序。