本文介紹Web Server模式的Custom Container Runtime實現函數執行個體生命週期回調的方法。
使用限制
非Web Server模式的Custom Container Runtime不支援Initializer、PreFreeze和PreStop三種回調。Function Compute僅在用戶端主動取消請求時,向相關執行個體發送SIGTERM訊號,如有需要,您可以在容器商務邏輯內自行捕獲SIGTERM訊號。
回調方法
當您實現並配置函數執行個體生命週期回調後,Function Compute將在相關執行個體生命週期事件發生時調用對應的回調程式。函數執行個體生命週期涉及Initializer、PreFreeze和PreStop三種回調。更多資訊,請參見函數執行個體生命週期回調。
下文介紹Initializer回調方法,PreFreeze和PreStop回調方法與之相同。
Path | 輸入請求 | 期望的響應 |
(可選)POST /initialize | 請求體:無。 要求標頭:Common Request Headers。具體資訊,請參見Function Compute公用要求標頭。 | 響應體:函數Initializer 的傳回值。 StatusCode
Python語言中關於 initialize 的範例程式碼如下:
|
(可選)GET /pre-freeze |
| 響應體:函數PreFreeze的傳回值。 StatusCode
|
(可選)GET /pre-stop |
| 響應體:函數PreStop的傳回值。 StatusCode
|
如果您想在Custom Runtime中使用Initializer回調方法,您需要在您的HTTP Server中實現Path為
/initialize
和Method為POST
的對應邏輯。範例程式碼,請參見上表中關於initialize
的範例程式碼。重要 建立的函數不設定Initializer時,無需實現
/initialize
。此時,即使HTTP Server實現了/initialize
,代碼中的/initialize
邏輯也無法被調用執行。