上线前逐项打勾。多数生产事故来自 token 泄露、缺少重试,或自动执行高危方法。
总览
按关注点分组的上线前清单,配合末尾的冒烟测试一起用。
Token 安全
token 仅存密钥管理 / 环境变量,绝不进仓库。
生产与测试 Bot 分离 token。
CI/CD 注入密钥;不打印到 build log。
制定 token 泄露轮换 SOP。
Webhook 安全
HTTPS 公网 URL。
配置
secret_token并校验X-MpChat-Bot-Api-Secret-Token头。Webhook endpoint 不暴露管理接口。
先在测试环境验证,再对生产执行
setWebhook。
限流与重试
客户端限流 ≤ 每 token 每秒 30 次。
429、500指数退避;400/401/403不重试;409理清轮询与 Webhook。批量操作控制并发。
日志脱敏
日志不出现 token、完整
initData或用户敏感字段。错误上报配置脱敏规则。
访问日志不记录含 secret 的完整 webhook URL。
高危 API(DocOnly,需审批 + 回滚方案)
logOut、leaveChat、deleteMessage(s)、banChatMember、setWebhook、deleteWebhook。部署流水线不包含上述方法的自动调用。
运维手册记录审批人与回滚步骤。
冒烟测试
getMe——token 有效。getWebhookInfo——URL 正确。模拟用户消息——Webhook 收到 update。
sendMessage——回复成功。(如有)
initData验签通过。
相关文章
另需验证幂等:评估重复 sendMessage 的业务副作用;Webhook 处理先持久化 update 再返回 200。
