Cloudflare Pages 每次构建后我都会运行的 3 项部署后检查
我花了两个星期来调试生产环境中的问题。
一个 sitemap 规则拦截了我的 XML 文件;一个竞态条件(race condition)导致了图片上传失败。我不再靠猜测,而是向我的工作流中添加了三项特定的检查。
我在三个 Astro 5 SSG 网站上运行这些检查:aiappdex.com、findindiegame.com 和 ossfind.com。
这些检查针对的是我实际遇到的故障模式。
- Sitemap 验证
我会检查所有域名下的 sitemap-index.xml 是否返回 200 状态码。我使用不跟随重定向的 curl。这可以捕获那些错误重写 URL 的规则。
我还会检查子 sitemaps。我会验证它们是否包含最少数量的 URL。例如,如果 aiappdex.com 的 URL 数量降至 1,000 以下,说明我的数据流水线(data pipeline)出故障了。
- IndexNow 提交
在 sitemap 检查通过后,我会运行一个脚本将 URL 提交给 IndexNow。这会通知 Bing、Yandex、Naver 和 Seznam 有新内容。
我会留意 403 错误。403 通常意味着我的密钥验证文件部署失败,或者重定向规则破坏了路径。及早发现这一点可以防止索引延迟。
我在部署后手动运行此操作。这可以确保我提交的是已经在 CDN 上实际生效的 URL。
- 定期 Lighthouse 审计
我每周一通过 cron job 运行 Lighthouse 检查。每个网站我会检查一个首页和一个深层页面。
我监控以下指标:
- Performance(目标值 80 以上)
- CLS(目标值 0.1 以下)
- Accessibility 分数
我将 Lighthouse 用作趋势监控工具。如果分数轻微下降,我不会阻止部署。我会利用这些数据来发现 Tailwind 配置或组件布局中的回归(regressions)问题。
为什么是这三项?
我并不使用可用性监控(uptime monitoring)或端到端用户测试。我的网站是静态 SSG 部署。整个运行时(runtime)都是预构建的 HTML 和 CSS。
故障面很小。这三项检查涵盖了生产环境最可能出现故障的情况。
来源:https://dev.to/morinaga/three-post-deploy-checks-i-run-after-every-cloudflare-pages-build-3j14