全部產品
Search
文件中心

:生命週期掛鈎概述

更新時間:Jun 30, 2024

本文主要介紹生命週期掛鈎的概念、工作流程、應用情境以及使用限制等相關內容。

什麼是生命週期掛鈎

生命週期掛鈎是一個管理伸縮組內ECS執行個體或ECI執行個體生命週期的工具。Auto Scaling會自動觸發擴縮容活動,並觸發生命週期掛鈎使伸縮活動中的ECS執行個體或ECI執行個體處於掛起中的狀態(即等待的狀態),為您保留一段自訂動作的時間,直至生命週期掛鈎逾時結束。

生命週期掛鈎主要支援設定以下功能:

說明

如果您想瞭解如何配置生命週期掛鈎的相關功能資訊,具體操作,請參見建立生命週期掛鈎

功能項

說明

配置伸縮活動類型

發生指定類型的伸縮活動時,生命週期掛鈎會被觸發並掛起ECS執行個體或ECI執行個體。

目前僅支援彈性收縮活動和彈性擴張活動類型,不支援其他伸縮活動類型。例如:

  • 選擇彈性擴張活動時,生命週期掛鈎只掛起彈性擴張的ECS執行個體或ECI執行個體。

  • 選擇彈性收縮活動時,生命週期掛鈎只掛起彈性收縮的ECS執行個體或ECI執行個體。

設定逾時時間

掛起的逾時時間長度,為您保留指定時間長度的自訂動作時間(即生命週期掛鈎的逾時時間)。

請根據您業務需要設定合理的逾時時間,如果操作時間超過逾時時間,則系統會執行預設執行策略。您可以刪除生命週期掛鈎或者調用API CompleteLifecycleAction提前結束伸縮活動的等待狀態。

配置預設執行策略

ECS執行個體或ECI執行個體掛起狀態逾時結束的下一步動作,即繼續或者拒絕伸縮活動。

  • 如果預設執行策略繼續,針對彈性擴張活動,繼續向伸縮組加入該ECS執行個體或ECI執行個體;針對彈性收縮活動,繼續停止該ECS執行個體或ECI執行個體在伸縮組中提供計算能力。

  • 如果預設執行策略拒絕,針對彈性擴張活動,直接釋放該ECS執行個體或ECI執行個體;針對彈性收縮活動,繼續停止該ECS執行個體或ECI執行個體在伸縮組中提供計算能力。

說明

僅當生命週期掛鈎的通知方式配置為OOS模板時,在生命週期掛鈎掛起狀態逾時結束之前OOS模板執行結束,這時掛起結束後的下一步動作僅由OOS模板的執行結果決定。如果執行成功,伸縮活動繼續;如果執行失敗,彈性擴張的伸縮活動會復原,彈性收縮的伸縮活動繼續。

觸發通知

生命週期掛鈎被觸發時,可以選擇通過指定方式發出通知或者自動執行更多操作。

例如,使用MNS通知便於您及時進行自訂動作,或者使用OOS模板自動執行任務。

說明

使用MNS服務時,會產生相應的費用。更多資訊,請參見MNS定價

工作流程

以下流程圖均以ECS執行個體為例,ECI執行個體的生命週期掛鈎擴縮容可參考此流程操作。

圖 1. 擴容流程圖流程圖

圖 2. 縮容流程圖縮容過程-zh

上圖中主要概念說明如下表所示:

概念

說明

生命週期掛鈎

是一個管理伸縮組內ECS執行個體或ECI執行個體生命週期的工具。更多資訊,請參見什麼是生命週期掛鈎

執行個體已託管給伸縮組

是將ECS執行個體或ECI執行個體的生命週期託管給伸縮組來管理,Auto Scaling會管理ECS執行個體或ECI執行個體的整個生命週期。關於ECS執行個體或ECI執行個體的生命週期的更多資訊,請參見執行個體的生命週期。不同方式建立的ECS執行個體或ECI執行個體託管給伸縮組後體現如下所示:

  • 自動建立的ECS執行個體或ECI執行個體已託管給伸縮組後,在彈性擴張時,Auto Scaling負責建立ECS執行個體或ECI執行個體;在彈性收縮時,Auto Scaling負責停止和釋放ECS執行個體。

  • 手動建立的ECS執行個體或ECI執行個體已添加並託管給伸縮組後,在彈性收縮時,Auto Scaling負責停止和釋放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文檔

配置生命週期掛鈎

建立生命週期掛鈎

CreateLifecycleHook

修改生命週期掛鈎

ModifyLifecycleHook

刪除生命週期掛鈎

DeleteLifecycleHook