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次/秒。
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。
- Tencent Cloud SDK 3.0 for Python: GitHub Gitee
- Tencent Cloud SDK 3.0 for Java: GitHub Gitee
- Tencent Cloud SDK 3.0 for PHP: GitHub Gitee
- Tencent Cloud SDK 3.0 for Go: GitHub Gitee
- Tencent Cloud SDK 3.0 for Node.js: GitHub Gitee
- Tencent Cloud SDK 3.0 for .NET: GitHub Gitee
- Tencent Cloud SDK 3.0 for C++: GitHub Gitee
- Tencent Cloud SDK 3.0 for Ruby: GitHub Gitee
命令行工具
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 主题无订阅者。 |