CreateLifecycleHook - 為伸縮組建立一個或多個生命週期掛鈎

更新時間:
Copy as MD

CreateLifecycleHook API用於在指定的Auto Scaling組中建立一個或多個生命週期掛鈎。這些掛鈎在執行個體的生命週期關鍵階段(如啟動、終止前)介入,使您能夠執行自訂動作,如發送通知或執行自動化指令碼等。通過此功能,您可以實現更細粒度的控制和管理,例如在執行個體被自動調整活動影響前後執行驗證、配置或資料備份任務,從而增強應用部署的靈活性和可靠性。

介面說明

一個伸縮組最多可以建立 10 個生命週期掛鈎。建立了生命週期掛鈎的伸縮組,在發生伸縮活動時,生命週期掛鈎會暫停伸縮活動一段時間,具體等待時間長度可以通過 HeartbeatTimeout 參數指定。您可以在等待期間進行初始化 ECS 執行個體配置、擷取 ECS 執行個體資料等操作。

彈性擴張活動時,ECS 執行個體添加至 RDS 執行個體白名單後進入等待狀態,等待狀態結束後再加入 SLB 執行個體後端伺服器組。彈性收縮活動時,ECS 執行個體從 SLB 執行個體後端伺服器組移出後進入等待狀態,等待狀態結束後再從 RDS 執行個體白名單移出。

生命週期掛鈎可以配置通知方式,支援 MNS 主題、MNS 隊列和 OOS 模板。如果配置 OOS 模板,您需要為 OOS 服務建立 RAM 角色。具體操作,請參見為 OOS 服務設定 RAM 許可權

說明

如果伸縮組有存量的 ECS 執行個體,且配置的 OOS 模板用於加入或移出除 RDS 外的其他雲資料庫白名單,則您必須手動將存量的 ECS 執行個體加入雲資料庫的白名單。

調試

您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。

調試

授權資訊

下表是API對應的授權資訊,可以在RAM權限原則語句的Action元素中使用,用來給RAM使用者或RAM角色授予調用此API的許可權。具體說明如下:

  • 操作:是指具體的許可權點。

  • 存取層級:是指每個操作的存取層級,取值為寫入(Write)、讀取(Read)或列出(List)。

  • 資源類型:是指操作中支援授權的資源類型。具體說明如下:

    • 對於必選的資源類型,用前面加 * 表示。

    • 對於不支援資源級授權的操作,用全部資源表示。

  • 條件關鍵字:是指雲產品自身定義的條件關鍵字。

  • 關聯操作:是指成功執行操作所需要的其他許可權。操作者必須同時具備關聯操作的許可權,操作才能成功。

操作

存取層級

資源類型

條件關鍵字

關聯操作

ess:CreateLifecycleHook

create

*ScalingGroup

acs:ess:{#regionId}:{#accountId}:scalinggroup/{#ScalingGroupId}

請求參數

名稱

類型

必填

描述

樣本值

ScalingGroupId

string

目標伸縮組的 ID。

asg-bp1eyv4qn8ssgv43****

LifecycleHookName

string

生命週期掛鈎的名稱。不能與當前伸縮組其他生命週期掛鈎重名,長度為 2~64 個英文或中文字元,以數字、大小寫字母或中文開頭,可包含數字、底線(_)、短劃線(-)和英文句號(.)。

預設值為 LifecycleHookId 的值。

lifecyclehook****

LifecycleTransition

string

生命週期掛鈎適用的伸縮活動類型,取值範圍:

  • SCALE_OUT:伸縮組彈性擴張活動

  • SCALE_IN:伸縮組彈性收縮活動

SCALE_OUT

DefaultResult

string

等待狀態結束後的下一步動作,取值範圍:

  • CONTINUE:繼續響應彈性擴張活動或者繼續響應彈性收縮活動。

  • ABANDON:直接釋放彈性擴張活動建立出來的 ECS 執行個體或者直接將彈性收縮活動中的 ECS 執行個體從伸縮組移除。

  • ROLLBACK:針對彈性收縮活動,會拒絕釋放 ECS 執行個體,進行復原;針對彈性擴張活動,會直接釋放建立出來的 ECS 執行個體,效果同 ABANDON 一樣。

當伸縮組發生彈性收縮活動(SCALE_IN)並觸發多個生命週期掛鈎時,如果一個生命週期掛鈎的 DefaultResult 取值為 ABANDON 或 ROLLBACK,且該掛鈎等待狀態結束時,會提前將其他生命週期掛鈎對應的等待狀態提前結束。其他情況下,下一步動作均以最後一個結束等待狀態的下一步動作為準。

預設值:CONTINUE

CONTINUE

HeartbeatTimeout

integer

生命週期掛鈎為伸縮組活動設定的等待時間,等待狀態逾時後會執行下一步動作。取值範圍:30~21600,單位:秒。

建立了生命週期掛鈎後,您可以調用 RecordLifecycleActionHeartbeat 延長 ECS 執行個體的等待時間,也可以調用 CompleteLifecycleAction 提前結束伸縮活動的等待狀態。

預設值:600

600

NotificationMetadata

string

生命週期掛鈎暫停伸縮活動時推送給 NotificationArn(通知對象)的通知資訊,便於管理和標記不同類別的通知資訊。必須同時指定 NotificationArn。參數長度不能超過 4096 個字元。

如果 NotificationArn 指定為 OOS 模板,包括公用模板或者自訂模板,則 NotificationMetadata 必須指定為 JSON 字串,且與 OOS 模板的參數相符。比如,{"dbInstanceId": "dds-bp17661e0135****", "modifyMode": "Append"}dbInstanceIdmodifyMode為 OOS 模板中已定義的參數。OOS 模板的部分參數有預設值,NotificationMetadata 必須指定無預設值的參數,指定有預設值的參數時會覆蓋原預設值,但以下參數請保持預設值,用於在伸縮活動運行時擷取相關資訊:

  • regionId:伸縮活動執行的地區,預設為${regionId}

  • instanceIds:伸縮活動關聯的執行個體列表,預設為${instanceIds}

  • lifecycleHookId:生命週期掛鈎 ID,預設為${lifecycleHookId}

  • lifecycleActionToken:伸縮活動的等待狀態標識符,用於提前結束當前的掛起活動,預設為${lifecycleActionToken}

  • scalingGroupId:伸縮活動所屬的伸縮組 ID,預設為${scalingGroupId}

  • lifecycleActionResult :生命週期掛鈎等待狀態結束後的下一步動作,用於在 OOS 模板執行失敗時提前結束當前的掛起活動,當 DefaultResult 為 ROLLBACK 時,參數值預設為 ROLLBACK,其餘情況預設為 ABANDON。

說明
  • 您可以根據需要設定 lifecycleActionResult 的值來覆蓋當前預設值,取值範圍為 ABANDON、CONTINUE、ROLLBACK、${lifecycleActionResult}。 其中,${lifecycleActionResult}表示 lifecycleActionResult 的值和 DefaultResult 保持一致。

  • 您可以在 OOS 控制台擷取對應模板的參數的詳細資料。

Test lifecycle hook.

NotificationArn

string

生命週期掛鈎通知物件識別碼,不設定本參數表示不發送通知,設定本參數時支援以下通知方式:

  • MNS 隊列,參數取值格式:acs:mns:{region-id}:{account-id}:queue/{queuename} 。

  • MNS 主題,參數取值格式:acs:mns:{region-id}:{account-id}:topic/{topicname}。

  • OOS 模板,參數取值格式:acs:oos:{region-id}:{account-id}:template/{templatename}。

  • 事件匯流排 ,參數取值格式:acs:eventbridge:{region-id}:{account-id}:eventbus/default。

參數格式中的變數含義如下:

  • region-id:伸縮組所在的地區的 ID。

  • account-id:阿里雲帳號 ID,不支援 RAM 使用者的帳號 ID。

  • queuename:MNS 隊列的名稱。

  • topicname:MNS 主題的名稱。

  • templatename:OOS 模板的名稱。

acs:mns:cn-beijing:161456884340****:queue/modifyLifecycleHo****

返回參數

名稱

類型

描述

樣本值

object

RequestId

string

請求 ID。

473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E

LifecycleHookId

string

生命週期掛鈎的 ID。

ash-bp1at9ufhmcf9cmy****

樣本

正常返回樣本

JSON格式

{
  "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E",
  "LifecycleHookId": "ash-bp1at9ufhmcf9cmy****"
}

錯誤碼

訪問錯誤中心查看更多錯誤碼。

變更歷史

更多資訊,參考變更詳情