创建生命周期挂钩

最近更新时间:2024-11-13 01:09:33

我的收藏

1. 接口描述

接口请求域名: as.tencentcloudapi.com 。

本接口(CreateLifecycleHook)用于创建生命周期挂钩。

  • 您可以为生命周期挂钩配置消息通知或执行自动化助手命令。

如果您配置了通知消息,弹性伸缩会通知您的TDMQ消息队列,通知内容形如:

{
    "Service": "Tencent Cloud Auto Scaling",
    "Time": "2019-03-14T10:15:11Z",
    "AppId": "1251783334",
    "ActivityId": "asa-fznnvrja",
    "AutoScalingGroupId": "asg-rrrrtttt",
    "LifecycleHookId": "ash-xxxxyyyy",
    "LifecycleHookName": "my-hook",
    "LifecycleActionToken": "3080e1c9-0efe-4dd7-ad3b-90cd6618298f",
    "InstanceId": "ins-aaaabbbb",
    "LifecycleTransition": "INSTANCE_LAUNCHING",
    "NotificationMetadata": ""
}

默认接口请求频率限制:20次/秒。

推荐使用 API Explorer
点击调试
API Explorer 提供了在线调用、签名验证、SDK 代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成 SDK 调用示例。

2. 输入参数

以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数

参数名称 必选 类型 描述
Action String 公共参数,本接口取值:CreateLifecycleHook。
Version String 公共参数,本接口取值:2018-04-19。
Region String 公共参数,详见产品支持的 地域列表
AutoScalingGroupId String 伸缩组ID
示例值:asg-8fbozqja
LifecycleHookName String 生命周期挂钩名称。名称仅支持中文、英文、数字、下划线(_)、短横线(-)、小数点(.),最大长度不能超128个字节。
示例值:one-hook-default
LifecycleTransition String 进行生命周期挂钩的场景,取值范围包括 INSTANCE_LAUNCHING 和 INSTANCE_TERMINATING
示例值:INSTANCE_LAUNCHING
DefaultResult String 定义伸缩组在生命周期挂钩超时的情况下应采取的操作,取值范围是 CONTINUE 或 ABANDON,默认值为 CONTINUE
示例值:CONTINUE
HeartbeatTimeout Integer 生命周期挂钩超时之前可以经过的最长时间(以秒为单位),范围从30到7200秒,默认值为300秒
示例值:300
NotificationMetadata String 弹性伸缩向通知目标发送的附加信息,配置通知时使用,默认值为空字符串""。最大长度不能超过1024个字节。
示例值:addtional-info
NotificationTarget NotificationTarget 通知目标。NotificationTarget和LifecycleCommand参数互斥,二者不可同时指定。
示例值:{"QueueName": "as-pool", "TargetType": "TDMQ_CMQ_QUEUE"}
LifecycleTransitionType String 进行生命周期挂钩的场景类型,取值范围包括NORMAL 和 EXTENSION。说明:设置为EXTENSION值,在AttachInstances、DetachInstances、RemoveInstaces接口时会触发生命周期挂钩操作,值为NORMAL则不会在这些接口中触发生命周期挂钩。
示例值:NORMAL
LifecycleCommand LifecycleCommand 远程命令执行对象。NotificationTarget和LifecycleCommand参数互斥,二者不可同时指定。
示例值:{"CommandId": "cmd-am4e3hd8", "Parameters": "{123: 222}"}

3. 输出参数

参数名称 类型 描述
LifecycleHookId String 生命周期挂钩ID
示例值:ash-8azjzxj9
RequestId String 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。

4. 示例

示例1 创建生命周期挂钩

创建生命周期挂钩,在实例创建场景下生效,DefaultResult设置为ABANDON,HeartbeatTimeout设置为360秒。

输入示例

POST / HTTP/1.1
Host: as.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: CreateLifecycleHook
<公共请求参数>

{
    "AutoScalingGroupId": "asg-8fbozqja",
    "DefaultResult": "ABANDON",
    "LifecycleHookName": "one-hook",
    "LifecycleTransition": "INSTANCE_LAUNCHING",
    "HeartbeatTimeout": "360"
}

输出示例

{
    "Response": {
        "LifecycleHookId": "ash-heyubibl",
        "RequestId": "5e414011-3359-45bd-8ba4-5b503d3fd3f6"
    }
}

示例2 创建生命周期挂钩,采用默认值

创建生命周期挂钩,在实例创建场景下生效。DefaultResult采用默认值,即CONTINUE。HeartbeatTimeout采用默认值,即300秒。

输入示例

POST / HTTP/1.1
Host: as.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: CreateLifecycleHook
<公共请求参数>

{
    "AutoScalingGroupId": "asg-8fbozqja",
    "LifecycleHookName": "one-hook-default",
    "LifecycleTransition": "INSTANCE_LAUNCHING"
}

输出示例

{
    "Response": {
        "LifecycleHookId": "ash-8azjzxj9",
        "RequestId": "4fa9fd2e-5b6c-49fe-9ba7-ed2ee62d8271"
    }
}

示例3 创建生命周期挂钩,通知TDMQ主题模型

创建生命周期挂钩,在实例销毁场景下生效,DefaultResult设置为ABANDON,HeartbeatTimeout设置为120秒,通知名为“one-topic”的TDMQ主题模型。

输入示例

POST / HTTP/1.1
Host: as.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: CreateLifecycleHook
<公共请求参数>

{
    "HeartbeatTimeout": "120",
    "AutoScalingGroupId": "asg-8fbozqja",
    "LifecycleHookName": "terminate-topic",
    "NotificationMetadata": "topic",
    "NotificationTarget": {
        "TargetType": "TDMQ_TOPIC",
        "TopicName": "one-topic"
    },
    "DefaultResult": "ABANDON",
    "LifecycleTransition": "INSTANCE_TERMINATING"
}

输出示例

{
    "Response": {
        "LifecycleHookId": "ash-oq76wsrx",
        "RequestId": "cdb7670b-0412-444f-9d2f-0da9cd07c410"
    }
}

示例4 创建生命周期挂钩,通知TDMQ队列模型

创建生命周期挂钩,在实例创建场景下生效,DefaultResult设置为CONTINUE,HeartbeatTimeout设置为120秒,通知名为“one-queue”的TDMQ队列模型。

输入示例

POST / HTTP/1.1
Host: as.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: CreateLifecycleHook
<公共请求参数>

{
    "HeartbeatTimeout": "120",
    "AutoScalingGroupId": "asg-8fbozqja",
    "LifecycleHookName": "launch-queue",
    "NotificationMetadata": "queue",
    "NotificationTarget": {
        "TargetType": "TDMQ_QUEUE",
        "QueueName": "one-queue"
    },
    "DefaultResult": "CONTINUE",
    "LifecycleTransition": "INSTANCE_LAUNCHING"
}

输出示例

{
    "Response": {
        "LifecycleHookId": "ash-fbjiexz7",
        "RequestId": "d3cf27b7-3090-4317-9107-d2eac986a446"
    }
}

示例5 创建执行自动化助手命令的生命周期挂钩

输入示例

POST / HTTP/1.1
Host: as.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: CreateLifecycleHook
<公共请求参数>

{
    "HeartbeatTimeout": "300",
    "AutoScalingGroupId": "asg-mp5ydedh",
    "LifecycleCommand": {
        "CommandId": "cmd-id9u919l",
        "Parameters": "{\"var1\":\"ck\"}"
    },
    "LifecycleHookName": "demo2",
    "DefaultResult": "CONTINUE",
    "LifecycleTransition": "INSTANCE_LAUNCHING"
}

输出示例

{
    "Response": {
        "LifecycleHookId": "ash-kjurq12y",
        "RequestId": "08f7bea5-3e0a-4280-9970-5d959a922b0b"
    }
}

5. 开发者资源

腾讯云 API 平台

腾讯云 API 平台 是综合 API 文档、错误码、API Explorer 及 SDK 等资源的统一查询平台,方便您从同一入口查询及使用腾讯云提供的所有 API 服务。

API Inspector

用户可通过 API Inspector 查看控制台每一步操作关联的 API 调用情况,并自动生成各语言版本的 API 代码,也可前往 API Explorer 进行在线调试。

SDK

云 API 3.0 提供了配套的开发工具集(SDK),支持多种编程语言,能更方便的调用 API。

命令行工具

6. 错误码

以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码

错误码 描述
InternalError 内部错误。
InternalError.CallCmqError Cmq 接口调用失败。
InternalError.CallTATError TAT 接口调用失败。
InternalError.CalleeError 调用其他服务异常。
InvalidParameter 参数错误。
InvalidParameter.ActionNotFound 无效的Action请求。
InvalidParameter.Conflict 参数冲突,指定的多个参数冲突,不能同时存在。
InvalidParameterValue 参数取值错误。
InvalidParameterValue.Filter 无效的过滤器。
InvalidParameterValue.InvalidAutoScalingGroupId 伸缩组ID无效。
InvalidParameterValue.LifecycleHookNameDuplicated 生命周期挂钩名称重复。
InvalidParameterValue.Range 取值超出指定范围。
LimitExceeded.QuotaNotEnough 当前剩余配额不足。
MissingParameter 缺少参数错误。
ResourceNotFound.AutoScalingGroupNotFound 伸缩组不存在。
ResourceNotFound.CmqQueueNotFound 指定的 CMQ queue 不存在。
ResourceNotFound.CommandNotFound 命令不存在。
ResourceNotFound.TDMQCMQQueueNotFound TDMQ-CMQ 队列不存在。
ResourceNotFound.TDMQCMQTopicNotFound TDMQ-CMQ 主题不存在。
ResourceUnavailable.CmqTopicHasNoSubscriber 指定的 CMQ Topic 无订阅者。
ResourceUnavailable.TDMQCMQTopicHasNoSubscriber TDMQ-CMQ 主题无订阅者。