更新时间:2024-04-25 GMT+08:00

创建生命周期挂钩

功能介绍

创建生命周期挂钩,可为伸缩组添加一个或多个生命周期挂钩,最多添加5个。

  • 添加生命周期挂钩后,当伸缩组进行伸缩活动时,实例将被生命周期挂钩挂起并置于等待状态(正在加入伸缩组或正在移出伸缩组),实例将保持此状态直至超时时间结束或者用户手动回调。
  • 用户能够在实例保持等待状态的时间段内执行自定义操作,例如,用户可以在新启动的实例上安装或配置软件,也可以在实例终止前从实例中下载日志文件。

URI

POST /autoscaling-api/v1/{project_id}/scaling_lifecycle_hook/{scaling_group_id}

表1 参数说明

参数

是否必选

参数类型

描述

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

生命周期挂钩超时时间,取值范围60-86400,默认为3600,单位是秒。

默认情况下,实例保持等待状态的时间。您可以延长超时时间,也可以在超时时间结束前进行 CONTINUE 或 ABANDON 操作。

notification_topic_urn

String

SMN 服务中 Topic 的唯一的资源标识。

为生命周期挂钩定义一个通知目标,当实例被生命周期挂钩挂起时向该通知目标发送消息。该消息包含实例的基本信息、用户自定义通知消息,以及可用于控制生命周期操作的令牌信息。

notification_metadata

String

自定义通知消息,长度不超过256位,不能包含字符< > & ' ( )。

当配置了通知目标时,可向其发送用户自定义的通知内容。

请求示例

创建一个名称为test-hook1的生命周期挂钩,伸缩组ID为e5d27f5c-dd76-4a61-b4bc-a67c5686719a,回调操作为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"
}

返回值

  • 正常

    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

    网关超时。

错误码

请参考错误码