CreateLifecycleHook
CreateLifecycleHook 用于在指定的彈性伸縮組中創(chuàng)建一個(gè)或多個(gè)生命周期掛鉤。這些掛鉤在實(shí)例的生命周期關(guān)鍵階段(如啟動(dòng)、終止前)介入,使您能夠執(zhí)行自定義操作,如發(fā)送通知或執(zhí)行自動(dòng)化腳本等。通過此功能,您可以實(shí)現(xiàn)更細(xì)粒度的控制和管理,例如在實(shí)例被自動(dòng)伸縮活動(dòng)影響前后執(zhí)行驗(yàn)證、配置或數(shù)據(jù)備份任務(wù),從而增強(qiáng)應(yīng)用部署的靈活性和可靠性。
接口說明
- 一個(gè)伸縮組最多可以創(chuàng)建6個(gè)生命周期掛鉤。創(chuàng)建了生命周期掛鉤的伸縮組,在發(fā)生伸縮活動(dòng)時(shí),生命周期掛鉤會(huì)暫停伸縮活動(dòng)一段時(shí)間,具體等待時(shí)長(zhǎng)可以通過HeartbeatTimeout參數(shù)指定。您可以在等待期間進(jìn)行初始化ECS實(shí)例配置、獲取ECS實(shí)例數(shù)據(jù)等操作。
- 彈性擴(kuò)張活動(dòng)時(shí),ECS實(shí)例添加至RDS實(shí)例白名單后進(jìn)入等待狀態(tài),等待狀態(tài)結(jié)束后再加入SLB實(shí)例后端服務(wù)器組。彈性收縮活動(dòng)時(shí),ECS實(shí)例從SLB實(shí)例后端服務(wù)器組移出后進(jìn)入等待狀態(tài),等待狀態(tài)結(jié)束后再?gòu)腞DS實(shí)例白名單移出。
- 生命周期掛鉤可以配置通知方式,支持MNS主題、MNS隊(duì)列和OOS模板。如果配置OOS模板,您需要為OOS服務(wù)創(chuàng)建RAM角色。具體操作,請(qǐng)參見為OOS服務(wù)設(shè)置RAM權(quán)限。
調(diào)試
您可以在OpenAPI Explorer中直接運(yùn)行該接口,免去您計(jì)算簽名的困擾。運(yùn)行成功后,OpenAPI Explorer可以自動(dòng)生成SDK代碼示例。
請(qǐng)求參數(shù)
名稱 |
類型 |
是否必選 |
示例值 |
描述 |
Action | String | 是 | CreateLifecycleHook | 系統(tǒng)規(guī)定參數(shù)。取值:CreateLifecycleHook。 |
ScalingGroupId | String | 是 | asg-bp1eyv4qn8ssgv43**** | 目標(biāo)伸縮組的ID。 |
LifecycleHookName | String | 否 | lifecyclehook**** | 生命周期掛鉤的名稱。不能與當(dāng)前伸縮組其他生命周期掛鉤重名,長(zhǎng)度為2~64個(gè)英文或中文字符,以數(shù)字、大小寫字母或中文開頭,可包含數(shù)字、下劃線(_)、短劃線(-)和半角句號(hào)(.)。 默認(rèn)值為L(zhǎng)ifecycleHookId的值。 |
LifecycleTransition | String | 是 | SCALE_OUT | 生命周期掛鉤適用的伸縮活動(dòng)類型。取值范圍:
|
DefaultResult | String | 否 | CONTINUE | 等待狀態(tài)結(jié)束后的下一步動(dòng)作。取值范圍:
當(dāng)伸縮組發(fā)生彈性收縮活動(dòng)(SCALE_IN)并觸發(fā)多個(gè)生命周期掛鉤時(shí),如果一個(gè)生命周期掛鉤的 默認(rèn)值:CONTINUE。 |
HeartbeatTimeout | Integer | 否 | 600 | 生命周期掛鉤為伸縮組活動(dòng)設(shè)置的等待時(shí)間,等待狀態(tài)超時(shí)后會(huì)執(zhí)行下一步動(dòng)作。取值范圍:30~21600,單位:秒。 創(chuàng)建了生命周期掛鉤后,您可以調(diào)用RecordLifecycleActionHeartbeat延長(zhǎng)ECS實(shí)例的等待時(shí)間,也可以調(diào)用CompleteLifecycleAction提前結(jié)束伸縮活動(dòng)的等待狀態(tài)。 默認(rèn)值:600。 |
NotificationMetadata | String | 否 | Test lifecycle hook. | 生命周期掛鉤暫停伸縮活動(dòng)時(shí)推送給 如果 例如,
|
NotificationArn | String | 否 | acs:mns:cn-beijing:161456884340****:queue/modifyLifecycleHo**** | 生命周期掛鉤通知對(duì)象標(biāo)識(shí)符,不設(shè)置本參數(shù)表示不發(fā)送通知,設(shè)置本參數(shù)時(shí)支持以下通知方式:
參數(shù)格式中的變量含義如下:
|
返回?cái)?shù)據(jù)
名稱 |
類型 |
示例值 |
描述 |
RequestId | String | 473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** | 請(qǐng)求ID。 |
LifecycleHookId | String | ash-bp1at9ufhmcf9cmy**** | 生命周期掛鉤的ID。 |
示例
請(qǐng)求示例
http(s)://ess.aliyuncs.com/?Action=CreateLifecycleHook
&ScalingGroupId=asg-bp1eyv4qn8ssgv43****
&LifecycleHookName=lifecyclehook****
&LifecycleTransition=SCALE_OUT
&DefaultResult=CONTINUE
&HeartbeatTimeout=600
&NotificationMetadata=Test lifecycle hook.
&NotificationArn=acs:mns:cn-beijing:161456884340****:queue/modifyLifecycleHo****
&公共請(qǐng)求參數(shù)
正常返回示例
XML
格式
HTTP/1.1 200 OK
Content-Type:application/xml
<CreateLifecycleHookResponse>
<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>
<LifecycleHookId>ash-bp1at9ufhmcf9cmy****</LifecycleHookId>
</CreateLifecycleHookResponse>
JSON
格式
HTTP/1.1 200 OK
Content-Type:application/json
{
"RequestId" : "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****",
"LifecycleHookId" : "ash-bp1at9ufhmcf9cmy****"
}
錯(cuò)誤碼
訪問錯(cuò)誤中心查看更多錯(cuò)誤碼。
HttpCode |
錯(cuò)誤碼 |
錯(cuò)誤信息 |
描述 |
400 |
InvalidParamter |
The specified value of parameter is not valid. |
參數(shù)值不合法。 |
400 |
InvalidNotificationArn |
The specified parameter notificationArn is invalid. |
指定的NotificationArn不合法。 |
400 |
UnsupportedNotificationType.CurrentRegion |
The notificationType is not supported in the special region which scalingGroup belongs to. |
當(dāng)前地域不支持該通知方式。 |
400 |
QueueNotExist |
The specified queue does not exist. |
指定的MNS隊(duì)列不存在。 |
400 |
TopicNotExist |
The specified topic does not exist. |
指定的MNS主題不存在。 |
400 |
InvalidLifecycleHookName.Duplicate |
The specified value of parameter lifecycleHookName is duplicated. |
生命周期掛鉤已存在。 |
400 |
QuotaExceeded.LifecycleHook |
Lifecycle hook quota exceeded in the specified scaling group. |
一個(gè)伸縮組最多可以創(chuàng)建6個(gè)生命周期掛鉤。 |