本文主要介紹生命週期掛鈎的概念、工作流程、應用情境以及使用限制等相關內容。
什麼是生命週期掛鈎
生命週期掛鈎是一個管理伸縮組內ECS執行個體或ECI執行個體生命週期的工具。Auto Scaling會自動觸發擴縮容活動,並觸發生命週期掛鈎使伸縮活動中的ECS執行個體或ECI執行個體處於掛起中的狀態(即等待的狀態),為您保留一段自訂動作的時間,直至生命週期掛鈎逾時結束。
生命週期掛鈎主要支援設定以下功能:
如果您想瞭解如何配置生命週期掛鈎的相關功能資訊,具體操作,請參見建立生命週期掛鈎。
功能項 | 說明 |
配置伸縮活動類型 | 發生指定類型的伸縮活動時,生命週期掛鈎會被觸發並掛起ECS執行個體或ECI執行個體。 目前僅支援彈性收縮活動和彈性擴張活動類型,不支援其他伸縮活動類型。例如:
|
設定逾時時間 | 掛起的逾時時間長度,為您保留指定時間長度的自訂動作時間(即生命週期掛鈎的逾時時間)。 請根據您業務需要設定合理的逾時時間,如果操作時間超過逾時時間,則系統會執行預設執行策略。您可以刪除生命週期掛鈎或者調用API CompleteLifecycleAction提前結束伸縮活動的等待狀態。 |
配置預設執行策略 | ECS執行個體或ECI執行個體掛起狀態逾時結束的下一步動作,即繼續或者拒絕伸縮活動。
說明 僅當生命週期掛鈎的通知方式配置為OOS模板時,在生命週期掛鈎掛起狀態逾時結束之前OOS模板執行結束,這時掛起結束後的下一步動作僅由OOS模板的執行結果決定。如果執行成功,伸縮活動繼續;如果執行失敗,彈性擴張的伸縮活動會復原,彈性收縮的伸縮活動繼續。 |
觸發通知 | 生命週期掛鈎被觸發時,可以選擇通過指定方式發出通知或者自動執行更多操作。 例如,使用MNS通知便於您及時進行自訂動作,或者使用OOS模板自動執行任務。 說明 使用MNS服務時,會產生相應的費用。更多資訊,請參見MNS定價。 |
工作流程
以下流程圖均以ECS執行個體為例,ECI執行個體的生命週期掛鈎擴縮容可參考此流程操作。
圖 2. 縮容流程圖
上圖中主要概念說明如下表所示:
概念 | 說明 |
生命週期掛鈎 | 是一個管理伸縮組內ECS執行個體或ECI執行個體生命週期的工具。更多資訊,請參見什麼是生命週期掛鈎。 |
執行個體已託管給伸縮組 | 是將ECS執行個體或ECI執行個體的生命週期託管給伸縮組來管理,Auto Scaling會管理ECS執行個體或ECI執行個體的整個生命週期。關於ECS執行個體或ECI執行個體的生命週期的更多資訊,請參見執行個體的生命週期。不同方式建立的ECS執行個體或ECI執行個體託管給伸縮組後體現如下所示:
|
執行個體未託管給伸縮組 | 手動建立的ECS執行個體或ECI執行個體已添加至伸縮組,但並未將該ECS執行個體或ECI執行個體的整個生命週期託管給伸縮組來管理。在彈性收縮時Auto Scaling負責將ECS執行個體或ECI執行個體移出伸縮組,但不會釋放ECS執行個體或ECI執行個體。 說明 支援將訂用帳戶的ECS執行個體添加至伸縮組,但不支援託管訂用帳戶的ECS執行個體。 |
應用情境
當ECS執行個體或者ECI執行個體存在以下情況時,適合使用生命週期掛鈎,在掛起ECS執行個體或者ECI期間先完成自訂動作,再對外提供服務。
彈性擴張的ECS執行個體或ECI執行個體不適合立即為用戶端提供服務。
例如,ECS執行個體需要加入雲資料庫,需要綁定輔助彈性網卡,或者ECS執行個體中為用戶端提供服務的應用需要一定的啟動時間。
彈性收縮的ECS執行個體或ECI不適合立即被移出。
例如,ECS執行個體或ECI執行個體需要備份資料、拷貝日誌,或者ECS執行個體或ECI執行個體中可能存在未處理完成的用戶端請求。
更多資訊,請參見生命週期掛鈎和OOS模板最佳實務概述和使用生命週期掛鈎確保服務可用。
使用限制
一個伸縮組內最多可以建立10個生命週期掛鈎。
在執行伸縮活動時,伸縮組能否執行其他伸縮活動和是否設定了期望執行個體數有關:
如果伸縮組未設定組內期望執行個體數,伸縮組拒絕執行其他的伸縮活動。
如果伸縮組設定了組內期望執行個體數,僅當前伸縮活動為並行伸縮活動時,伸縮組可以執行其他伸縮活動。如何判斷並行伸縮活動,請參見基本概念。
如何配置生命週期掛鈎
配置生命週期掛鈎的相關文檔如下表所示:
控制台文檔 | 操作項 | API文檔 |
建立生命週期掛鈎 | ||
修改生命週期掛鈎 | ||
刪除生命週期掛鈎 |