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状态,请按照 回滚应用程序升级 部分中的说明恢复正常状态。
运行中有状态应用程序的处理流程
以下示例展示如何使用 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 运行时与应用程序的新运行时不兼容,则启动请求可能会被拒绝。
就绪状态应用程序的处理流程