天天看點

AutoScaling 通過lifecycleHook自動添加MongoDB白名單

本文将為您介紹如何通過lifecycleHook實作彈性伸縮組中執行個體自動加入/移除MongoDB白名單。

相關介紹

lifecycleHook通過關聯OOS模闆的方式來實作自動化管理MongoDB白名單的工作,關于lifecycleHook與OOS如何協作,你可以檢視兄弟文章

AutoScaling 通過lifecycleHook自動添加Redis白名單

模闆介紹

ACS-ESS-LifeCycleModifyMongoDBIPWhitelist模闆負責添加/移除MongoDB白名單操作。當您需要實作自動化添加/移除MongoDB白名單操作時,您需要針對擴縮容流程分别設定兩條OOS類型lifecycleHook。

ACS-ESS-LifeCycleModifyMongoDBIPWhitelist模闆具有以下行為方式:

根據指定的執行個體ID清單擷取Private IP清單;

将Private IP清單添加/移除MongoDB執行個體白名單清單;

該模闆同時支援回調功能:

執行成功時,通過回調通知lifecycleHook繼續執行挂起的伸縮活動;

執行失敗時,通過回調通知lifecycleHook復原挂起的伸縮活動;

當無回調時,lifecycleHook挂起的伸縮活動将在逾時後,執行hook指定的政策。

參數指定

使用者可以建立類型為OOS的lifecycleHook,并選擇OOS系統模闆ACS-ESS-LifeCycleModifyMongoDBIPWhitelist。在選擇了指定的系統模闆之後,你需要為模闆運作配置合适的參數,例如目标MongoDB執行個體的ID,執行個體ID清單,lifecycleHook ID資訊等。由于執行個體ID清單,lifecycleHook ID等資訊隻有在運作時才能擷取到,你需要通過僞參數的提供占位符資訊,支援的僞參數資訊如下:

${scalingGroupId},目前伸縮活動所屬的伸縮組id;

${instanceIds},目前伸縮活動關聯的執行個體清單;

${regionId},目前伸縮活動執行的地域;

${lifecycleActionToken},伸縮活動的等待狀态辨別符,用于提前結束目前的挂起活動;

${lifecycleHookId},關聯生命周期挂鈎id。

注意事項

使用ACS-ESS-LifeCycleModifyMongoDBIPWhitelist模闆時您需要注意:

當您建立該模闆的lifecycleHook時,您需要将伸縮組中存量的執行個體清單手動添加到MongoDB白名單中,否則,當移除一個MongoDB白名單中不存在的執行個體私網IP時,将出現錯誤。

當指定生命周期挂鈎關聯一個OOS模闆時,使用者需要通過生命周期挂鈎的通知辨別(NotificationMetadata,簡稱metadata)為建立OOS執行指定所需的參數。針對OOS模闆的metadata,你需要注意:

  1. metadata必須為JSON字元串格式;
  2. metadata中的鍵,必須與OOS模闆參數一一對應;
  3. OOS模闆中不存在預設值的參數必須指定,存在預設值的參數可選擇是否指定以覆寫預設值。

最佳實踐

下面以控制台建立自動添加MongoDB白名單的OOS類型lifecycleHook為例進行使用介紹。

AutoScaling 通過lifecycleHook自動添加MongoDB白名單
AutoScaling 通過lifecycleHook自動添加MongoDB白名單

首先,針對擴容流程建立類型為OOS模闆的生命周期挂鈎,這時,彈框提示您選擇OOS模闆,這裡需要選擇系統模闆ACS-ESS-LifeCycleModifyMongoDBIPWhitelist。

AutoScaling 通過lifecycleHook自動添加MongoDB白名單

接下來,您需要填充模闆使用的參數,此處已經為您自動填充了部分僞參數,您隻需要填寫目标MongoDB

執行個體ID,同時選擇modifyMode為Append。點選确認,核實您傳入的參數。

AutoScaling 通過lifecycleHook自動添加MongoDB白名單

點選建立執行,将回到建立lifecycleHook的彈框。

AutoScaling 通過lifecycleHook自動添加MongoDB白名單

點選建立生命周期挂鈎,完成建立。

此時您可以執行一條擴容伸縮規則,并在

OOS控制台

觀察模闆的執行過程。

https://yqfile.alicdn.com/c157447eb79cbf46fd845faca9e2a8804cc98fb3.png