创建生命周期挂钩
功能介绍
创建生命周期挂钩,可为伸缩组添加一个或多个生命周期挂钩,最多添加5个。
- 添加生命周期挂钩后,当伸缩组进行伸缩活动时,实例将被生命周期挂钩挂起并置于等待状态(正在加入伸缩组或正在移出伸缩组),实例将保持此状态直至超时时间结束或者用户手动回调。
- 用户能够在实例保持等待状态的时间段内执行自定义操作,例如,用户可以在新启动的实例上安装或配置软件,也可以在实例终止前从实例中下载日志文件。
URI
POST /autoscaling-api/v1/{project_id}/scaling_lifecycle_hook/{scaling_group_id}
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目ID |
scaling_group_id |
是 |
String |
伸缩组ID |
请求消息
- 请求参数
表2 请求参数 参数
是否必选
参数类型
描述
lifecycle_hook_name
是
String
生命周期挂钩名称(1-32个字符),只能包含字母、数字、下划线或中划线。
lifecycle_hook_type
是
String
生命周期挂钩类型。取值如下:
- INSTANCE_TERMINATING:该类型挂钩负责在实例终止时将实例挂起。
- INSTANCE_LAUNCHING:该类型挂钩负责在实例启动时将实例挂起。
default_result
否
String
生命周期挂钩默认回调操作。默认情况下,到达超时时间后执行的操作。
- ABANDON
- CONTINUE
说明:- 如果实例正在启动,则 CONTINUE 表示用户自定义操作已成功,可将实例投入使用。否则,ABANDON 表示用户自定义操作未成功,终止实例,伸缩活动置为失败,重新创建新实例。
- 如果实例正在终止,则 ABANDON 和 CONTINUE 都允许终止实例。不过,ABANDON 将停止其他生命周期挂钩,而 CONTINUE 将允许完成其他生命周期挂钩。
- 该字段缺省时默认为 ABANDON。
default_timeout
否
Integer
生命周期挂钩超时时间,取值范围300-86400,默认为3600,单位是秒。
默认情况下,实例保持等待状态的时间。您可以延长超时时间,也可以在超时时间结束前进行 CONTINUE 或 ABANDON 操作。
notification_topic_urn
是
String
SMN 服务中 Topic 的唯一的资源标识。
为生命周期挂钩定义一个通知目标,当实例被生命周期挂钩挂起时向该通知目标发送消息。该消息包含实例的基本信息、用户自定义通知消息,以及可用于控制生命周期操作的令牌信息。
notification_metadata
否
String
自定义通知消息,长度不超过256位,不能包含字符< > & ' ( )。
当配置了通知目标时,可向其发送用户自定义的通知内容。
- 请求样例
本示例展示了在ID为e5d27f5c-dd76-4a61-b4bc-a67c5686719a的伸缩组内创建一个名称为test-hook1,回调操作为ABANDON,超时时间为3600秒,消息通知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" }
响应消息
- 响应参数
表3 响应参数 参数
参数类型
描述
lifecycle_hook_name
String
生命周期挂钩名称
lifecycle_hook_type
String
生命周期挂钩类型。
- INSTANCE_TERMINATING
- INSTANCE_LAUNCHING
default_result
String
生命周期挂钩默认回调操作。
- ABANDON
- CONTINUE
default_timeout
Integer
生命周期挂钩超时时间,单位秒。
notification_topic_urn
String
SMN 服务中 Topic 的唯一的资源标识。
notification_topic_name
String
SMN 服务中 Topic 的资源名称。
notification_metadata
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" }
返回值
- 正常
- 异常
返回值
说明
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
网关超时。
错误码
请参考错误码。