首页 弹性伸缩 开发参考 API参考 API参考(2022-02-22) API目录 生命周期挂钩 CreateLifecycleHook - 为伸缩组创建一个或多个生命周期挂钩

CreateLifecycleHook - 为伸缩组创建一个或多个生命周期挂钩

更新时间: 2023-07-11 09:50:20

为伸缩组创建一个或多个生命周期挂钩。

接口说明

一个伸缩组最多可以创建6个生命周期挂钩。创建了生命周期挂钩的伸缩组,在发生伸缩活动时,生命周期挂钩会暂停伸缩活动一段时间,具体等待时长可以通过HeartbeatTimeout参数指定。您可以在等待期间进行初始化ECS实例配置、获取ECS实例数据等操作。

弹性扩张活动时,ECS实例添加至RDS实例白名单后进入等待状态,等待状态结束后再加入SLB实例后端服务器组。弹性收缩活动时,ECS实例从SLB实例后端服务器组移出后进入等待状态,等待状态结束后再从RDS实例白名单移出。

生命周期挂钩可以配置通知方式,支持MNS主题、MNS队列和OOS模板。如果配置OOS模板,您需要为OOS服务创建RAM角色。具体操作,请参见为OOS服务设置RAM权限

说明如果伸缩组有存量的ECS实例,且配置的OOS模板用于加入或移出除RDS外的其他云数据库白名单,则您必须手动将存量的ECS实例加入云数据库的白名单。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

调试

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
ess:CreateLifecycleHookWrite
  • AutoScaling
    acs:ess:{#regionId}:{#accountId}:scalinggroup/*

请求参数

名称类型必填描述示例值
ScalingGroupIdstring

伸缩组的ID。

asg-bp1eyv4qn8ssgv43****
LifecycleHookNamestring

生命周期挂钩的名称。不能与当前伸缩组其他生命周期挂钩重名,长度为2~64个英文或中文字符,以数字、大小写字母或中文开头,可包含数字、下划线(_)、短划线(-)和英文句号(.)。

默认值为LifecycleHookId的值。

lifecyclehook****
LifecycleTransitionstring

生命周期挂钩适用的伸缩活动类型,取值范围:

  • SCALE_OUT:伸缩组弹性扩张活动
  • SCALE_IN:伸缩组弹性收缩活动
SCALE_OUT
DefaultResultstring

等待状态结束后的下一步动作,取值范围:

  • CONTINUE:继续响应弹性扩张活动或者继续响应弹性收缩活动。
  • ABANDON:直接释放弹性扩张活动创建出来的ECS实例或者直接将弹性收缩活动中的ECS实例从伸缩组移除。
  • ROLLBACK:针对弹性收缩活动,会拒绝释放ECS实例,进行回滚;针对弹性扩张活动,会直接释放创建出来的ECS实例,效果同ABANDON一样。

当伸缩组发生弹性收缩活动(SCALE_IN)并触发多个生命周期挂钩时,如果一个生命周期挂钩的DefaultResult取值为ABANDON或ROLLBACK,且该挂钩等待状态结束时,会提前将其他生命周期挂钩对应的等待状态提前结束。其他情况下,下一步动作均以最后一个结束等待状态的下一步动作为准。

默认值:CONTINUE

CONTINUE
HeartbeatTimeoutinteger

生命周期挂钩为伸缩组活动设置的等待时间,等待状态超时后会执行下一步动作。取值范围:30~21600,单位:秒。

创建了生命周期挂钩后,您可以调用RecordLifecycleActionHeartbeat延长ECS实例的等待时间,也可以调用CompleteLifecycleAction提前结束伸缩活动的等待状态。

默认值:600

600
NotificationMetadatastring

生命周期挂钩暂停伸缩活动时推送给NotificationArn(通知对象)的通知信息,便于管理和标记不同类别的通知信息。必须同时指定NotificationArn。参数长度不能超过4096个字符。

如果NotificationArn指定为OOS模板,包括公共模板或者自定义模板,则NotificationMetadata必须指定为JSON字符串,且与OOS模板的参数相符。比如,{"dbInstanceId": "dds-bp17661e0135****", "modifyMode": "Append"}dbInstanceIdmodifyMode为OOS模板中已定义的参数。OOS模板的部分参数有默认值,NotificationMetadata必须指定无默认值的参数,指定有默认值的参数时会覆盖原默认值,但以下参数请保持默认值,用于在伸缩活动运行时获取相关信息:

  • regionId:伸缩活动执行的地域,默认为${regionId}

  • instanceIds:伸缩活动关联的实例列表,默认为${instanceIds}

  • lifecycleHookId:生命周期挂钩ID,默认为${lifecycleHookId}

  • lifecycleActionToken:伸缩活动的等待状态标识符,用于提前结束当前的挂起活动,默认为${lifecycleActionToken}

  • scalingGroupId:伸缩活动所属的伸缩组ID,默认为${scalingGroupId}

  • lifecycleActionResult :生命周期挂钩等待状态结束后的下一步动作,用于在OOS模板执行失败时提前结束当前的挂起活动,当DefaultResult为ROLLBACK时,参数值默认为ROLLBACK,其余情况默认为ABANDON。

说明
  • 您可以根据需要设置lifecycleActionResult的值来覆盖当前默认值,取值范围为ABANDON、CONTINUE、ROLLBACK、${lifecycleActionResult}。
  • 其中,${lifecycleActionResult}表示lifecycleActionResult的值和DefaultResult保持一致。

    • 您可以在OOS控制台获取对应模板的参数的详细信息。
    Test lifecycle hook.
    NotificationArnstring

    生命周期挂钩通知对象标识符,不设置本参数表示不发送通知,设置本参数时支持以下通知方式:

    • 消息服务MNS队列,参数取值格式:acs:mns:{region-id}:{account-id}:queue/{queuename} 。
    • 消息服务MNS主题,参数取值格式:acs:mns:{region-id}:{account-id}:topic/{topicname}。
    • 运维编排OOS模板,参数取值格式:acs:oos:{region-id}:{account-id}:template/{templatename}。
    • 事件总线 ,参数取值格式:acs:eventbridge:{region-id}:{account-id}:eventbus/default。

    参数格式中的变量含义如下:

    • region-id:伸缩组所在的地域的ID。
    • account-id:阿里云账号ID,不支持RAM用户的账号ID。
    • queuename:MNS队列的名称。
    • topicname:MNS主题的名称。
    • templatename:OOS模板的名称。
    acs:mns:cn-beijing:161456884340****:queue/modifyLifecycleHo****

    返回参数

    名称类型描述示例值
    object
    RequestIdstring

    请求ID。

    473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E
    LifecycleHookIdstring

    生命周期挂钩的ID。

    ash-bp1at9ufhmcf9cmy****

    示例

    正常返回示例

    JSON格式

    {
      "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E",
      "LifecycleHookId": "ash-bp1at9ufhmcf9cmy****"
    }

    错误码

    访问错误中心查看更多错误码。

    阿里云首页 弹性伸缩 相关技术圈