常识来了
白蓝主题五 · 清爽阅读
首页  > 软件进阶

部署脚本调用API的实用技巧

上线新功能,最怕手动操作出错。以前每次发布,都得登录服务器、拉代码、重启服务,一通操作下来,手忙脚乱还容易漏步骤。后来开始写部署脚本,事情一下子变得简单了。

脚本不只是执行命令

刚开始写脚本,无非是把常用的 shell 命令堆在一起。比如:

git pull origin main
npm install
pm2 restart app

这确实省事,但没法知道外部系统状态。比如,前端发完版本,想通知后端刷新缓存,或者让监控平台记录一次发布行为,这时候就得靠 API

让脚本“说话”:调用 API 的几种方式

脚本里调 API,最简单的就是 curl。比如,部署完成后,向内部通知服务发个请求:

curl -X POST https://api.notify.example.com/deploy \
-H "Content-Type: application/json" \
-d '{"service": "user-api", "version": "v1.5.2", "status": "success"}'

这个请求能让值班群收到一条消息,也能让发布记录自动录入系统。

如果用的是 Node.js 写的部署工具,也可以直接用 axios 发请求。比如在 CI 脚本里加一段:

const axios = require('axios');

async function reportDeploy() {
await axios.post('https://api.monitor.example.com/event', {
action: 'deploy_finish',
timestamp: Date.now(),
env: 'production'
});
}

这种写法更灵活,适合复杂逻辑,比如根据返回值决定是否继续发布。

实际场景:灰度发布中的 API 协作

我们做过一次灰度发布,脚本先部署到测试机,然后调用配置中心 API 切流量比例:

curl -X PUT https://config.example.com/service/user/route \
-d '{"traffic": {"v1": 90, "v2": 10}}'

等观察十分钟日志没问题,再把流量切到 100%。整个过程脚本自动完成,人只需要盯着看结果。

安全别忘了

脚本里调 API,免不了用 token 或密钥。别直接写在代码里,用环境变量最稳妥:

TOKEN=abc123 curl -H "Authorization: Bearer $TOKEN" \
https://api.example.com/trigger

CI 系统里配置好 secret,本地测试时再单独加载 .env 文件,既安全又方便。

现在我们的部署脚本不仅能干活,还能“汇报工作”。每次发布完,钉钉有通知,数据库有记录,甚至还能触发一次自动化巡检。这些都靠 API 连起来,像搭积木一样简单。