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