CreateLifecycleHook API用于在指定的弹性伸缩组中创建一个或多个生命周期挂钩。这些挂钩在实例的生命周期关键阶段(如启动、终止前)介入,使您能够执行自定义操作,如发送通知或执行自动化脚本等。通过此功能,您可以实现更细粒度的控制和管理,例如在实例被自动伸缩活动影响前后执行验证、配置或数据备份任务,从而增强应用部署的灵活性和可靠性。
接口说明
一个伸缩组最多可以创建 6 个生命周期挂钩。创建了生命周期挂钩的伸缩组,在发生伸缩活动时,生命周期挂钩会暂停伸缩活动一段时间,具体等待时长可以通过 HeartbeatTimeout 参数指定。您可以在等待期间进行初始化 ECS 实例配置、获取 ECS 实例数据等操作。
弹性扩张活动时,ECS 实例添加至 RDS 实例白名单后进入等待状态,等待状态结束后再加入 SLB 实例后端服务器组。弹性收缩活动时,ECS 实例从 SLB 实例后端服务器组移出后进入等待状态,等待状态结束后再从 RDS 实例白名单移出。
生命周期挂钩可以配置通知方式,支持 MNS 主题、MNS 队列和 OOS 模板。如果配置 OOS 模板,您需要为 OOS 服务创建 RAM 角色。具体操作,请参见为 OOS 服务设置 RAM 权限。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action
元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用背景高亮的方式表示。
- 对于不支持资源级授权的操作,用
全部资源
表示。
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
---|---|---|---|---|
ess:CreateLifecycleHook | create | *全部资源 * |
| 无 |
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
ScalingGroupId | string | 是 | 目标伸缩组的 ID。 | asg-bp1eyv4qn8ssgv43**** |
LifecycleHookName | string | 否 | 生命周期挂钩的名称。不能与当前伸缩组其他生命周期挂钩重名,长度为 2~64 个英文或中文字符,以数字、大小写字母或中文开头,可包含数字、下划线(_)、短划线(-)和英文句号(.)。 默认值为 LifecycleHookId 的值。 | lifecyclehook**** |
LifecycleTransition | string | 是 | 生命周期挂钩适用的伸缩活动类型,取值范围:
| SCALE_OUT |
DefaultResult | string | 否 | 等待状态结束后的下一步动作,取值范围:
当伸缩组发生弹性收缩活动(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 模板的参数相符。比如,
说明
| Test lifecycle hook. |
NotificationArn | string | 否 | 生命周期挂钩通知对象标识符,不设置本参数表示不发送通知,设置本参数时支持以下通知方式:
参数格式中的变量含义如下:
| acs:mns:cn-beijing:161456884340****:queue/modifyLifecycleHo**** |
返回参数
示例
正常返回示例
JSON
格式
{
"RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E",
"LifecycleHookId": "ash-bp1at9ufhmcf9cmy****"
}
错误码
访问错误中心查看更多错误码。