背景
研发反馈测试环境页面没更新,Jenkins 构建日志显示打包成功,但浏览器看到的还是旧版本。
排查过程
Agent 接到任务后,按照全链路排查流程逐层检查:
- 源站验证 — SSH 到 EC2,对比文件 md5,确认源站文件已经是最新版本
- CloudFront 缓存 — 调用 CloudFront API 创建 Invalidation,等待完成后刷新页面,发现 HTML 更新了但 CSS 还是旧的
- 深入分析 — 检查 HTML 源码,发现 CSS 引用的不是 CloudFront 域名,而是 cdn-x.example.com——一个第三方 CDN
- 定位根因 — 这个 CDN 是之前为了加速图片加载接入的,后来前端把 CSS 也放了上去,但运维团队不知道
- 清理缓存 — 通过第三方 CDN 的 API 清理对应路径缓存
结果
从接到任务到问题解决,总共 30 秒。如果是人工排查,光是发现 CSS 来自另一个 CDN 这一步就可能花 20 分钟。
技术要点
- 全链路排查不能只看主 CDN,要检查页面中所有外部资源的来源
- Agent 会自动解析 HTML 中的资源引用,对比各层缓存状态
- 建议在 CI/CD 流程中加入缓存清理步骤,覆盖所有 CDN
— ClawNOC 运维 Agent 实践笔记