Skip to content

使用指南

腾讯云国际渠道代理商: 利用云监控与 SCF 自动释放闲置 CVM 资源

一、背景与方案概述

在腾讯云国际站的多地域部署中,按量计费的云服务器(CVM)大量用于临时计算、测试环境。任务结束后,若没有及时销毁实例,会持续产生闲置扣费。依靠人工巡检不仅效率低下,还容易遗漏不同海外地域的资源。 本文介绍一套基于腾讯云国际原生云监控 Cloud Monitor + SCF 云函数的闲置资源识别释放方案,帮助企业降低测试环境的无效成本。

整体方案逻辑:

整套架构建议采用「定时轮询为主,告警事件为辅」双链路:

  1. SCF 定时触发器(主链路):按周期定时执行函数,遍历账号下多地域 CVM,读取监控指标,判定是否长期闲置。
  2. Cloud Monitor 云监控(辅助):采集 CVM CPU、带宽、磁盘指标,指标持续低于阈值产生告警,通过告警回调投递事件到 SCF,作为补充触发。
  3. SCF 云函数执行逻辑:接收定时任务或告警事件,读取实例标签做白名单过滤,过滤包年包月实例;优先发送邮件 / 消息通知,确认条件满足后调用 CVM API 执行销毁。

不建议仅依靠监控告警单一链路,7 天以上闲置会出现告警静默,自动化会失效。

二、安全策略:CAM 权限控制、标签白名单与防护机制

为避免自动化脚本误删线上核心业务资源,必须配置多层防护:

最小权限 CAM 角色配置 为 SCF 创建独立服务角色,授予最小必要权限:

  • CVM:cvm:TerminateInstances(销毁实例)、cvm:DescribeInstances(查询实例)
  • 标签:tag:DescribeResourceTagsByResourceIds(读取实例标签,过滤白名单)

不要直接授予全量管理员权限。

标签 Tag 业务隔离规则

  • 自动释放候选:实例打上标签 AutoRelease:True,只有带该标签的按量实例才会进入销毁判断逻辑。
  • 生产白名单:打上 Env:Production的实例直接跳过所有处理逻辑,永不执行销毁。

业务防护硬性逻辑

  • 自动跳过所有包年包月 CVM 实例;
  • 销毁前建议优先创建快照备份;
  • 正式销毁前发送邮件 / 消息通知,可配置人工确认开关,不建议收到条件就直接无条件删除。

三、配置参考步骤

闲置资源判定参考指标

监控统计粒度 5 分钟,适合测试、临时计算实例,生产业务可按需调整阈值。

表格

监控指标 建议阈值 持续时间 判定逻辑
CPU 使用率 < 5% 连续 7 天 长期处于极低负载
公网出带宽 < 100 Kbps 连续 7 天 无外部业务交互流量
磁盘读写 IOPS < 10 次 / 秒 连续 7 天 无后台批处理任务
  1. 创建 SCF 云函数在腾讯云国际 SCF 控制台选择对应海外地域新建 Python 云函数,绑定上面创建好的 CAM 服务角色。

同时开启两个触发器: ① 定时触发器(主链路,建议每日执行一次,做全账号多地域巡检兜底); ② 告警回调触发器(辅助链路,接收云监控告警事件)。 脚本需要遍历全部业务地域,调用 CVM API 时显式传入 region 参数,保证多地域实例都能被扫描到。 解析告警 JSON 事件提取实例 ID 作为补充输入;具体 SDK 代码请参考腾讯云国际官方 API 文档。

  1. 配置云监控告警策略(仅做辅助通知)进入 Cloud Monitor 可观测平台,新建告警策略,绑定目标 CVM 实例; 配置上面闲置指标阈值;在通知模板开启告警回调,回调地址填写 SCF 回调格式 SCF:$region/$namespace/$functionName,同时配置邮件、站内信告警渠道,方便人工接收预警腾讯云。
  2. 给实例打标签测试 / 临时实例打上 AutoRelease:True;生产业务实例打上 Env:Production。
  3. 上线前模拟测试修改脚本为仅输出日志,不实际调用销毁接口;执行定时触发器,查看 SCF 执行日志,确认标签过滤、地域遍历、计费模式过滤逻辑符合预期,验证无误后再开启真实销毁动作。

四、资源清理注意事项

  1. CVM 实例被销毁不等于所有费用停止:脚本建议增加逻辑,识别独立弹性 CBS 云硬盘、闲置 EIP,避免遗留资源持续扣费腾讯云。
  2. 按量计费实例销毁后会进入回收站保留 2 小时,回收站期间磁盘、EIP 仍会计费,需要彻底释放独立存储资源。
  3. 可以配置销毁前自动打快照,防止误删后数据丢失。
  4. 上线后定期查看 SCF 执行日志与费用中心账单,校验自动化执行效果。

五、常见问题解答(FAQ)

Q1:腾讯云国际版如何自动识别并释放闲置的云服务器?
A:推荐采用SCF 定时轮询为主、云监控告警为辅的双链路架构。SCF 定时遍历多地域 CVM 实例,读取监控指标,结合实例标签白名单过滤,仅对带 AutoRelease:True 标签的按量计费闲置实例,在通知预警后执行 API 销毁;云监控告警作为补充触发手段,不建议作为唯一执行链路。

Q2:为什么不建议完全依赖云监控 7 天闲置告警自动销毁? A:云监控告警生命周期存在限制,如果告警条件连续 7 天未恢复,系统会停止发送告警通知,告警回调不再推送事件到 SCF,自动化链路直接失效;同时告警回调存在事件投递丢包风险,必须增加 SCF 定时触发器兜底巡检腾讯云。

Q3:执行 TerminateInstances 销毁 CVM 之后,还会产生账单吗? A:会。销毁 CVM 只会释放实例计算资源;独立弹性 CBS 数据盘、EIP 弹性公网 IP、快照拥有独立生命周期,不会随 CVM 自动删除,会继续计费,需要脚本或者人工单独清理这些资源腾讯云。

Q4:配置完自动化之后如何验证是否正常工作? A:上线前先关闭真实销毁逻辑,只打印执行日志;手动触发 SCF 定时触发器,在云函数日志查看实例过滤、标签识别、地域遍历结果;确认逻辑完全符合预期之后,再开启销毁动作。

Q5:包年包月实例会被脚本误销毁吗? A:脚本必须增加计费模式判断逻辑,自动跳过所有包年包月实例;同时搭配 Env:Production 生产标签白名单做二次防护,双重规避误操作。

 

文章标签