將您的應用程式升級到新的 Apache Flink 版本 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink 之前稱為 Amazon Kinesis Data Analytics for Apache Flink。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將您的應用程式升級到新的 Apache Flink 版本

您可以使用動作升級 Flink 應用程UpdateApplication式。

您可以透過多種方式呼叫:UpdateApplicationAPI

  • 使用上的現有「組態」工作流程 AWS Management Console。

    • 前往您的應用程式頁面 AWS Management Console。

    • 選擇設定

    • 選取新的執行階段和您要從其開始的快照,也稱為還原組態。使用最新設定做為還原設定,從最新的快照啟動應用程式。指向亞馬Amazon S3 上新升級的應用程式 JAR /zip。

  • 使用更新應用 AWS CLI 程式動作。

  • 使用 AWS CloudFormation (CFN)。

    • 更新RuntimeEnvironment欄位。之前, AWS CloudFormation 刪除了該應用程序並創建一個新應用程序,從而導致您的快照和其他應用程序歷史記錄丟失。現在 AWS CloudFormation 更新你 RuntimeEnvironment 的地方,不會刪除您的應用程序。

  • 使用 AWS SDK.

    • 請參閱SDK文件以瞭解您選擇的程式設計語言。請參閱UpdateApplication

您可以在應用程式RUNNING處於狀態或應用程式處於狀態停止時執行READY升級。適用於 Apache Flink 的 Amazon 受管服務會驗證原始執行階段版本與目標執行階段版本之間的相容性。此相容性檢查會在您處於狀態執行UpdateApplication時執行,StartApplication如果在RUNNING狀態下進行升級,則會在READY下一次執行。

下列範例顯示使用 AWS CLI 並從最新快照啟動升級的應用程式,UpgradeTest將位於美國東部 (維吉尼亞北部) 的RUNNING狀態名為 Flink 1.18 的應用程式升級為 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}
  • 如果您已啟用服務快照並希望繼續最新快照中的應用程式,適用於 Apache Flink 的 Amazon 受管服務會驗證目前RUNNING應用程式的執行階段與選取的目標執行階段是否相容。

  • 如果您已指定要從中繼續目標執行階段的快照,適用於 Apache Flink 的 Amazon 受管服務會驗證目標執行階段與指定的快照相容。如果相容性檢查失敗,您的更新要求會遭到拒絕,且您的應用程式會在RUNNING狀態下保持不變。

  • 如果您選擇在沒有快照的情況下啟動應用程式,適用於 Apache Flink 的 Amazon 受管服務不會執行任何相容性檢查。

  • 如果升級的應用程式失敗或卡在轉移UPDATING狀態,請按照還原應用程式升級本節中的指示返回健康狀態。

執行狀態應用程式的程序流程

下圖顯示在執行時升級應用程式的建議工作流程。我們假設應用程式是可設定狀態的,而且您已啟用快照。對於此工作流程,在更新時,您可以從更新之前由適用於 Apache Flink 的 Amazon 受管服務自動擷取的最新快照還原應用程式。

下列範例顯示使用. UpgradeTest 將美國東部 (維吉尼亞北部) READY 狀態名為 Flink 1.18 的應用程式升級為. 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 的 Amazon 受管服務不會執行任何檢查,直到您啟動應用程式為止。

  • 適用於 Apache Flink 的 Amazon 受管服務只會針對您選取用來啟動應用程式的快照執行相容性檢查。這些是遵循 Flink 相容性表格的基本相容性檢查。他們只會檢查拍攝快照時使用的 Flink 版本以及您目標的 Flink 版本。如果所選快照的 Flink 執行階段與應用程式的新執行階段不相容,則啟動要求可能會遭到拒絕。

就緒狀態應用程式的處理流程

下圖顯示在就緒狀態下升級應用程式的建議工作流程。我們假設應用程式是可設定狀態的,而且您已啟用快照。對於此工作流程,在更新時,您可以從應用程式停止時由適用於 Apache Flink 的 Amazon 受管服務自動擷取的最新快照還原應用程式。