View a markdown version of this page

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

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

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

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

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

  • 在 上使用現有的組態工作流程 AWS 管理主控台。

    • 前往 上的應用程式頁面 AWS 管理主控台。

    • 選擇設定

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

  • 使用 AWS CLI update-application 動作。

  • Use CloudFormation (CFN)。

    • 更新 RuntimeEnvironment 欄位。先前, CloudFormation 刪除應用程式並建立新的應用程式,導致您的快照和其他應用程式歷史記錄遺失。現在會 CloudFormation 更新您的 RuntimeEnvironment,而不會刪除您的應用程式。

  • 使用 AWS SDK。

    • 如需您選擇的程式設計語言,請參閱 SDK 文件。請參閱 UpdateApplication

您可以在應用程式處於 RUNNING 狀態或應用程式處於停止READY狀態時執行升級。Amazon Managed Service for Apache Flink 會驗證原始執行時間版本與目標執行時間版本之間的相容性。當您在 RUNNING 狀態執行 UpdateApplication 時,或在READY處於 狀態時升級時,會在下一個 StartApplication 執行此相容性檢查。

下列範例顯示使用 將RUNNING狀態為 的應用程式升級至美國東部 (維吉尼亞北部) 的 UpgradeTest 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"}}}}' \ --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 在更新之前自動拍攝的最新快照還原應用程式。

下列範例顯示使用 將READY狀態為 的應用程式升級至美國東部 (維吉尼亞北部) 的 UpgradeTest Flink 1 AWS CLI.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 自動拍攝的最新快照還原應用程式。