为伸缩组创建一个或多个生命周期挂钩。
接口说明
-
一个伸缩组最多可以创建 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 | *ScalingGroup acs:ess:{#regionId}:{#accountId}:scalinggroup/{#ScalingGroupId} |
| 无 |
请求参数
| 名称 | 类型 | 必填 | 描述 | 示例值 |
|---|---|---|---|---|
| ScalingGroupId | string | 是 | 目标伸缩组的 ID。 | asg-bp1eyv4qn8ssgv43**** |
| LifecycleHookName | string | 否 | 生命周期挂钩的名称。不能与当前伸缩组其他生命周期挂钩重名,长度为 2~64 个英文或中文字符,以数字、大小写字母或中文开头,可包含数字、下划线(_)、短划线(-)和半角句号(.)。 默认值为 LifecycleHookId 的值。 | lifecyclehook**** |
| LifecycleTransition | string | 是 | 生命周期挂钩适用的伸缩活动类型。取值范围:
| SCALE_OUT |
| DefaultResult | string | 否 | 等待状态结束后的下一步动作。取值范围:
当伸缩组发生弹性收缩活动(SCALE_IN)并触发多个生命周期挂钩时,如果一个生命周期挂钩的 默认值:CONTINUE。 | CONTINUE |
| HeartbeatTimeout | integer | 否 | 生命周期挂钩为伸缩组活动设置的等待时间,等待状态超时后会执行下一步动作。取值范围:30~21600,单位:秒。 创建了生命周期挂钩后,您可以调用 RecordLifecycleActionHeartbeat 延长 ECS 实例的等待时间,也可以调用 CompleteLifecycleAction 提前结束伸缩活动的等待状态。 默认值:600。 | 600 |
| NotificationMetadata | string | 否 | 生命周期挂钩暂停伸缩活动时推送给 如果 例如,
说明
lifecycleActionResult的值来覆盖当前默认值,取值范围为 ABANDON、CONTINUE、ROLLBACK、${lifecycleActionResult}。其中,${lifecycleActionResult}表示 lifecycleActionResult 的值和 DefaultResult 保持一致。
| Test lifecycle hook. |
| NotificationArn | string | 否 | 生命周期挂钩通知对象标识符,不设置本参数表示不发送通知,设置本参数时支持以下通知方式:
参数格式中的变量含义如下:
| acs:mns:cn-beijing:161456884340****:queue/modifyLifecycleHo**** |
返回参数
示例
正常返回示例
JSON格式
{
"RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****",
"LifecycleHookId": "ash-bp1at9ufhmcf9cmy****"
}错误码
访问错误中心查看更多错误码。
变更历史
| 变更时间 | 变更内容概要 | 操作 |
|---|---|---|
| 2025-02-25 | OpenAPI 描述信息更新 | 查看变更详情 |
| HttpCode | 错误码 | 错误信息 | 描述 |
|---|---|---|---|
| 400 | InvalidParamter | The specified value of parameter is not valid. | 参数值不合法。 |
| 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. | 当前地域不支持该通知方式。 |
| 400 | QueueNotExist | The specified queue does not exist. | 指定的 MNS 队列不存在。 |
| 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. | 一个伸缩组最多可以创建 6 个生命周期挂钩。 |
