5.9 生命周期挂钩
5.9.1 创建生命周期挂钩
功能介绍
创建生命周期挂钩,可为伸缩组添加一个或多个生命周期挂钩,最多添加5个。
● 添加生命周期挂钩后,当伸缩组进行伸缩活动时,实例将被生命周期挂钩挂起并 置于等待状态(正在加入伸缩组或正在移出伸缩组),实例将保持此状态直至超 时时间结束或者用户手动回调。
● 用户能够在实例保持等待状态的时间段内执行自定义操作,例如,用户可以在新 启动的实例上安装或配置软件,也可以在实例终止前从实例中下载日志文件。
调试
您可以在API Explorer中调试该接口。
URI
POST /autoscaling-api/v1/{project_id}/scaling_lifecycle_hook/{scaling_group_id}
表5-159 参数说明
参数 是否必选 参数类型 描述
project_id 是 String 项目ID
scaling_group_id 是 String 伸缩组ID
请求消息
k_name 是 String 生命周期挂钩名称(1-32个字符),只 能包含字母、数字、下划线或中划 线。
lifecycle_hoo
k_type 是 String 生命周期挂钩类型。取值如下:
● INSTANCE_TERMINATING:该类 型挂钩负责在实例终止时将实例挂 起。
● INSTANCE_LAUNCHING:该类型 挂钩负责在实例启动时将实例挂 起。
default_resul
t 否 String 生命周期挂钩默认回调操作。默认情
况下,到达超时时间后执行的操作。
● ABANDON
● CONTINUE 说明
● 如果实例正在启动,则 CONTINUE 表 示用户自定义操作已成功,可将实例投 入使用。否则,ABANDON 表示用户 自定义操作未成功,终止实例,伸缩活 动置为失败,重新创建新实例。
● 如果实例正在终止,则 ABANDON 和 CONTINUE 都允许终止实例。不过,
ABANDON 将停止其他生命周期挂 钩,而 CONTINUE 将允许完成其他生 ABANDON 操作。
参数 是否必 选
参数类型 描述
notification_t
opic_urn 是 String SMN 服务中 Topic 的唯一的资源标 识。
metadata 否 String 自定义通知消息,长度不超过256位,
不能包含字符< > & ' ( )。 topic_urn为urn:smn:regionId:b53e5554fad0494d96206fb84296510b:gsh且挂钩 类型为在实例启动时挂起实例的生命周期挂钩。
POST https://{Endpoint}/autoscaling-api/v1/{project_id}/scaling_lifecycle_hook/e5d27f5c-dd76-4a61-b4bc-a67c5686719a
{ "lifecycle_hook_name": "test-hook1", "default_result": "ABANDON", "default_timeout": 3600,
"notification_topic_urn": "urn:smn:regionId:b53e5554fad0494d96206fb84296510b:gsh", "lifecycle_hook_type": "INSTANCE_LAUNCHING"
}
ame String 生命周期挂钩名称
lifecycle_hook_t
ype String 生命周期挂钩类型。
● INSTANCE_TERMINATING
● INSTANCE_LAUNCHING default_result String 生命周期挂钩默认回调操作。
● ABANDON
● CONTINUE
default_timeout Integer 生命周期挂钩超时时间,单位秒。
参数 参数类型 描述 notification_topi
c_urn String SMN 服务中 Topic 的唯一的资源标识。
notification_topi
c_name String SMN 服务中 Topic 的资源名称。
notification_met
adata String 自定义通知消息
create_time String 生命周期挂钩创建时间,遵循UTC时间。
● 响应样例
{ "lifecycle_hook_name": "test-hook1", "default_result": "ABANDON", "default_timeout": 3600,
"notification_topic_urn": "urn:smn:regionId:b53e5554fad0494d96206fb84296510b:gsh", "notification_topic_name": "gsh",
"lifecycle_hook_type": "INSTANCE_LAUNCHING", "notification_metadata": null,
"create_time": "2019-03-18T16:00:11Z"
}
返回值
● 正常 200
● 异常
返回值 说明
400 Bad Request 服务器未能处理请求。
401 Unauthorized 被请求的页面需要用户名和密码。
403 Forbidden 对被请求的页面访问禁止。
404 Not Found 服务器无法找到被请求的页面。
405 Method Not Allowed 请求中指定的方法不被允许。
406 Not Acceptable 服务器生成的响应无法被客户端所接受。
407 Proxy Authentication
Required 用户必须首先使用代理服务器进行验证,
这样请求才会被处理。
408 Request Timeout 请求超出了服务器的等待时间。
409 Conflict 由于冲突,请求无法被完成。
500 Internal Server Error 请求未完成。服务异常。
501 Not Implemented 请求未完成。服务器不支持所请求的功 能。
返回值 说明
502 Bad Gateway 请求未完成。服务器从上游服务器收到一 个无效的响应。
503 Service Unavailable 请求未完成。系统暂时异常。
504 Gateway Timeout 网关超时。
错误码
请参考错误码。