计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
态势感知 SA
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive

生命周期挂钩

更新时间:2022-02-22 GMT+08:00

生命周期挂钩功能提供灵活控制伸缩组内ECS实例创建和移出过程的能力,以便用户灵活管理ECS实例的生命周期。伸缩组中未添加生命周期挂钩时,实例生命周期状态如图1所示。

图1 实例生命周期状态

添加生命周期挂钩后,实例生命周期状态如图2所示。

图2 添加生命周期挂钩后实例生命周期状态

当伸缩组中发生伸缩活动,触发生命周期挂钩时,伸缩活动将被挂起,正在进行伸缩活动的实例会被置为等待状态,如图2中②和⑥。您可在实例保持等待状态时进行一些自定义操作。例如,在新实例移入伸缩组时,您可以在其上安装或配置软件。有以下两种方式可以结束被挂起的伸缩活动:

  • 实例保持等待的时间大于超时时间。
  • 手动执行回调操作,主动结束实例等待状态。

使用场景

  • 伸缩组中新移入的实例,需要先进行初始化(安装或配置软件等)并检测服务正常运行后,再绑定到负载均衡监听器对外提供服务。
  • 伸缩组中的实例被释放之前,需要先从负载均衡监听器上解绑以确保不再接收新的请求,待检测已经接收到的请求处理完毕后进行释放。
  • 伸缩组中的实例被释放之前,需要执行数据备份操作或者下载日志文件。
  • 其它需要执行自定义操作的场景。

工作原理

将生命周期挂钩添加到伸缩组后,生命周期挂钩将按照如下方式工作:

  • 实例移入伸缩组

    实例移入伸缩组并且初始化完成之后,自动触发挂钩类型为“实例启动”的生命周期挂钩,实例进入“等待(正在加入伸缩组)”状态,即实例被挂钩挂起。若您配置了一个通知目标,则系统会向该目标发送消息。收到消息后,您可以执行自定义操作,例如在实例上安装软件。自定义操作执行完成后,您可以手动执行回调操作,结束实例等待状态。或等待超时时间结束,系统自动结束实例等待状态。实例等待状态结束之后的默认回调操作有两种执行方案,“继续”或“终止”。这两种执行方案解释如下:

    • 继续:处于等待状态的实例将加入伸缩组。
    • 终止:处于等待状态的实例将被直接删除并重新创建新实例。

    若配置了多个“实例启动”类型的生命周期挂钩,实例移入伸缩组会触发多个生命周期挂钩,若有一个挂钩默认回调操作为“终止”时,将会直接删除实例并重新创建新实例。若所有挂钩默认回调操作都为“继续”时,则会等待最后一个挂钩挂起结束后,将实例加入伸缩组。

  • 实例移出伸缩组

    实例移出伸缩组时,先进入正在移出伸缩组状态,触发生命周期挂钩后,实例进入“等待(正在移出伸缩组)”状态。系统会向您配置的通知目标发送消息,收到消息后,您可以执行自定义操作,如卸载实例上的软件、备份数据等。自定义操作执行完成之后,您可以选择手动执行默认回调操作或等待超时时间超时来结束实例等待状态。等待状态结束后实例有两种执行方案,继续或终止,这两种执行方案解释如下:

    • 继续:将实例移出伸缩组
    • 终止:将实例移出伸缩组

    当有多个挂钩时,“继续”表示继续等待其他挂钩挂起超时,只有所有挂钩状态都为“继续”时,才会将实例移出伸缩组。只要有一个挂钩默认回调操作为“终止”,会直接将实例移出伸缩组。

使用限制

  • 添加挂钩、删除挂钩、修改挂钩等操作都是在该伸缩组未进行伸缩活动时可操作。
  • 一个伸缩组内最多可添加5个生命周期挂钩。

添加挂钩

  1. 登录管理控制台。
  2. 选择“计算 > 弹性伸缩 > 伸缩实例 > 弹性伸缩组”。
  3. 单击需要添加生命周期挂钩的弹性伸缩组名称,进入伸缩组的“基本信息”界面,选择“生命周期挂钩”页签,单击“添加生命周期挂钩”。
  4. 在“添加生命周期挂钩”界面,根据界面提示进行参数配置,如表1所示。
    表1 参数配置

    参数名称

    参数说明

    取值样例

    挂钩名称

    生命周期挂钩名称(1~32个字符),只能由字母、数字、下划线、中划线组成。

    we12_w

    挂钩类型

    挂钩类型包括“实例启动”和“实例终止”,它们分别在实例加入伸缩组和实例移出伸缩组时将实例置于“等待(正在加入伸缩组)”或者“等待(正在移出伸缩组)”状态。

    实例启动

    默认回调操作

    默认回调操作是指当实例为等待状态且等待状态的时间已经达到超时时间后的系统默认操作。

    在当前实例正在加入伸缩组时,默认回调操作的含义为:
    • 继续:当有一个挂钩时,表示继续将实例加入伸缩组;当有多个挂钩时,表示继续等待其他挂钩的状态,只有所有挂钩状态都为“继续”时,才会继续将实例加入伸缩组。
    • 终止:无论有几个挂钩,只要有一个挂钩状态为“终止”,将会直接删除实例并重新创建新实例。
    在当前实例正在移出伸缩组时,默认回调操作的含义为:
    • 继续:当只有一个挂钩时,“继续”表示直接将实例移出伸缩组;当有多个挂钩时,表示继续等待其他挂钩的状态,只有所有挂钩状态都为“继续”时,才会继续将实例移出伸缩组。
    • 终止:无论有几个个挂钩,只要有一个挂钩状态为“终止”,会直接将实例移出伸缩组。

    继续

    超时时间

    默认情况下,实例保持等待状态的时间。取值范围为:300秒~86400秒。

    您可以延长超时时间,也可以在超时时间结束前进行“继续”或“终止”操作。关于回调操作更多信息请参见进行回调操作

    3600秒

    通知主题

    为生命周期挂钩定义一个通知目标(请参见《消息通知服务用户指南》创建主题),当实例被挂钩挂起时向该通知目标发送消息。该消息包含实例的基本信息、用户自定义通知消息,以及可用于控制生命周期操作的令牌信息。消息样例如下:

    {
     "service": "AutoScaling",
     "tenant_id": "93075aa73f6a4fc0a3209490cc57181a",
     "lifecycle_hook_type": "INSTANCE_LAUNCHING",
     "lifecycle_hook_name": "test02",
     "lifecycle_action_key": "4c76c562-9688-45c6-b685-7fd732df310a",
     "notification_metadata": "xxxxxxxxxxxxx",
     "scaling_instance": {
      "instance_id": "89b421e4-5fa6-4733-bf40-6b07a8657256",
      "instance_name": "as-config-kxeg_RM6OCREY",
      "instance_ip": "192.168.0.202"
     },
     "scaling_group": {
      "scaling_group_id": "fe376277-50a6-4e36-bdb0-685da85f1a82",
      "scaling_group_name": "as-group-wyz01",
      "scaling_config_id": "16ca8027-b6cc-45fc-af2d-5a79996f685d",
      "scaling_config_name": "as-config-kxeg"
     }
    }

    -

    自定义通知消息

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

    -

  5. 单击“确定”。

    在生命周期挂钩页签可查看到新添加的生命周期挂钩。

进行回调操作

  1. 在伸缩实例页面,单击需要进行回调操作的伸缩组名称,进入弹性伸缩组的“基本信息”界面。
  2. 选择“伸缩实例”页签。
  3. 单击被挂钩挂起实例“生命周期状态”列下的“等待(正在加入伸缩组)” 或“等待(正在移出伸缩组)”,如图3所示。
    图3 回调操作入口
    说明:

    只有被生命周期挂钩挂起的实例,可执行回调操作。

  4. 在弹出的“伸缩实例挂起信息”界面,可查看某个实例的挂起信息及当前伸缩组中所有的挂钩,并且可对每个挂钩执行回调操作。如图4所示。
    图4 伸缩实例挂起信息页面

    回调操作包括:

    • 继续
    • 终止
    • 延长超时时间

    如果您在超时时间结束前已完成自定义操作,选择“继续”或“终止”完成生命周期操作。“继续”或“终止”操作含义请参见表1。如果您需要更多时间完成自定义操作,选择“延长超时间”延长超时时间,实例保持等待状态的时间将增加3600秒。

修改挂钩

在“生命周期挂钩”页签,选择要修改的挂钩“操作”列下的“修改”,修改时界面的参数配置请参考表1,您可以修改除挂钩名称外的其余参数,例如挂钩类型、默认回调操作、超时时间等。

删除挂钩

在“生命周期挂钩”页签,选择要删除的挂钩“操作”列下的“删除”。

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容