全部產品
Search
文件中心

Serverless App Engine:設定應用生命週期管理

更新時間:Sep 03, 2024

如果您精通K8s,且需要在應用程式容器啟動前或者關閉前執行相關操作,例如運行前部署資源或者停止前優雅下線應用,可以設定應用生命週期管理。

背景資訊

您可以在SAE上對應用進行以下配置。

  • 啟動後處理(PostStart設定):應用程式容器建立成功後,運行前的任務,例如資源部署、環境準備等。

  • 停止前處理(PreStop設定):應用程式容器被終止前的任務,例如優雅關閉應用程式、通知其他系統等。

  • 優雅下線逾時設定(TerminationGracePeriodSeconds):應用執行個體停止前,等待的時間,逾時後SAE將強制停止執行個體。

操作步驟

在建立應用過程中配置應用生命週期管理

  1. 登入SAE控制台

  2. 在左側導覽列,單擊應用列表,在頂部功能表列選擇地區,然後單擊建立應用

  3. 應用基本資料設定精靈,設定應用相關資訊,並單擊下一步:應用部署配置

  4. 應用部署配置設定精靈,選擇技術棧語言應用部署方式,設定部署資訊。

  5. 展開應用生命週期管理設定面板,按需配置資訊。

    說明

    命令列指令碼:首行為命令,次行為參數,多條參數以換行分割,避免出現空行。

    • 配置啟動後處理(PostStart設定)

      命令列指令碼地區輸入自訂的PostStart命令。

      PostStart配置樣本圖

    • 配置停止前處理(PreStop設定)

      命令列指令碼地區輸入自訂的PreStop命令。

      PreStop配置樣本

    • 配置優雅下線逾時設定(TerminationGracePeriodSeconds)

      優雅下線逾時時間地區輸入逾時時間,最大支援5分鐘。

      sc_termination_grace_period_seconds_300s

    說明
    • Poststart設定:一種容器鉤子。該鉤子在容器被建立後立刻觸發,通知容器它已經被建立。該鉤子不需要向其所對應的hook handler傳入任何參數。如果該鉤子對應的hook handler執行失敗,則該容器會被關閉,並根據該容器的重啟策略決定是否重啟該容器。更多資訊,請參見Container Lifecycle Hooks

    • PreStop設定:一種容器鉤子。該鉤子在容器被刪除前觸發,其所對應的hook handler必須在刪除該容器的請求發送給Docker daemon之前完成。在該鉤子對應的hook handler完成後不論執行的結果如何,Docker daemon會發送SGTERN訊號量給Docker daemon刪除該容器。更多資訊,請參見Container Lifecycle Hooks

  6. 單擊下一步:確認規格

  7. 確認規格設定精靈,查看您所建立應用的詳細資料以及配置費用情況,並單擊確認建立

    頁面會跳轉至建立完成設定精靈,您可以單擊應用詳情頁進入基本資料頁面。

  8. 驗證結果。

    例如應用啟動前,需要將Hello from the postStart handler內容寫入檔案。

    PostStart配置如下:

    /bin/sh
    -c
    echo "Hello from the postStart handler" > /usr/share/message

    應用部署後,使用Webshell查看檔案中是否存在Hello from the postStart handler。如果存在,表示配置成功。

    結果驗證成功樣本圖

在部署應用過程中配置應用生命週期管理

警告

重新部署應用後,該應用將會被重啟。為避免業務中斷等不可預知的錯誤,請在業務低峰期執行部署操作。

更新應用配置的路徑因執行個體數的不同而不同。本文以執行個體數大於等於1為例,介紹如何配置目標功能。當執行個體數等於0時的操作路徑,請參見更新應用

  1. 登入SAE控制台

  2. 在左側導覽列,單擊應用列表,在頂部功能表列選擇地區,然後單擊具體應用程式名稱。

  3. 基本資料頁面右上方,單擊部署應用

  4. 展開應用生命週期管理設定面板,按需配置資訊。

    說明

    命令列指令碼:首行為命令,次行為參數,多條參數以換行分割,避免出現空行。

    • 配置啟動後處理(PostStart設定)

      命令列指令碼地區輸入自訂的PostStart命令。

      PostStart配置樣本圖

    • 配置停止前處理(PreStop設定)

      命令列指令碼地區輸入自訂的PreStop命令。

      PreStop配置樣本

    • 配置優雅下線逾時設定(TerminationGracePeriodSeconds)

      優雅下線逾時時間地區輸入逾時時間,最大支援5分鐘。

      sc_termination_grace_period_seconds_300s

    說明
    • Poststart設定:一種容器鉤子。該鉤子在容器被建立後立刻觸發,通知容器它已經被建立。該鉤子不需要向其所對應的hook handler傳入任何參數。如果該鉤子對應的hook handler執行失敗,則該容器會被關閉,並根據該容器的重啟策略決定是否重啟該容器。更多資訊,請參見Container Lifecycle Hooks

    • PreStop設定:一種容器鉤子。該鉤子在容器被刪除前觸發,其所對應的hook handler必須在刪除該容器的請求發送給Docker daemon之前完成。在該鉤子對應的hook handler完成後不論執行的結果如何,Docker daemon會發送SGTERN訊號量給Docker daemon刪除該容器。更多資訊,請參見Container Lifecycle Hooks

  5. 配置完成後,單擊確認

  6. 驗證結果。

    例如應用啟動前,需要將Hello from the postStart handler內容寫入檔案。

    PostStart配置如下:

    /bin/sh
    -c
    echo "Hello from the postStart handler" > /usr/share/message

    應用部署後,使用Webshell查看檔案中是否存在Hello from the postStart handler。如果存在,表示配置成功。

    結果驗證成功樣本圖