# Argo CD 接入 Server酱：应用同步状态推送到微信（2026 教程）

> 通过 argocd-notifications webhook 将 Argo CD 应用同步成功、健康状态变化推送到微信，ConfigMap 配置即用。

- 网页版：https://sct.ftqq.com/docs/integrations/argocd/
- 更新日期：2026-07-17

# Argo CD + Server酱：应用同步状态推送到微信

> 效果：Argo CD 应用同步成功或失败时，自动推送消息到微信。

## 前置条件

- Server酱 SendKey（[30 秒获取教程](https://sct.ftqq.com/docs/getting-started/sendkey/)）
- 已安装 argocd-notifications 组件
- 对 argocd-notifications-cm ConfigMap 有编辑权限

## 配置步骤

### 1. 定义 webhook service

在 argocd-notifications-cm ConfigMap 中定义 webhook service，将 URL 指向 Server酱 API，方法为 POST，body 使用 form 格式传 title 和 desp（具体配置键名请参考 argocd-notifications 文档）。

如果你使用 Server酱³（SendKey 以 sctp 开头），URL 改为：

```
https://你的UID.push.ft07.com/send/你的SENDKEY.send
```

UID 是 sctp 与 t 之间的数字。

### 2. 定义消息模板

在同一个 ConfigMap 中添加消息模板，将应用名和同步状态拼入 title 和 desp（具体模板语法请参考 argocd-notifications 文档）。

### 3. 定义触发器

添加触发器，指定在同步成功或失败时发送通知（具体配置请参考 argocd-notifications 文档）。

### 4. 订阅应用

通过 ConfigMap 中的 subscriptions 全局订阅，或通过 Application annotation 订阅（具体方式请参考 argocd-notifications 文档）。

### 5. 应用配置

```bash
kubectl apply -f argocd-notifications-cm.yaml
```

应用配置后，根据 argocd-notifications 文档使配置生效。

## 完整示例

一个完整的 argocd-notifications-cm ConfigMap 需包含以下部分：

- **webhook 服务定义**：指向 Server酱 的 URL（`https://sctapi.ftqq.com/你的SENDKEY.send`，Server酱³ 用户使用对应 URL），方法 POST，body 为 form 格式。
- **消息模板**：将应用名、同步状态等信息拼入 title 和 desp。
- **触发器**：指定在同步成功或失败等条件下发送通知。
- **订阅**：全局订阅或按应用订阅。

具体配置键名和语法请参考 argocd-notifications 官方文档，将上述 Server酱 的 URL 和参数填入即可。

## 常见问题

**免费额度够用吗？**

Server酱免费版每天 5 条，每分钟上限 50 条。GitOps 部署频率不高时通常够用；高频部署可考虑订阅会员目前特价最低 3 元/月，一天最多可发 1000 条（[价格详情](https://sct.ftqq.com/subscribe)）。

**配置后没收到消息？**

先检查 argocd-notifications-controller 日志确认 webhook 是否被触发；再确认 SendKey 正确、API 返回 JSON 的 code 为 0。也可参考[常见问题与排查](https://sct.ftqq.com/docs/getting-started/faq/)。

**form body 中的特殊字符怎么处理？**

body 使用 form 格式时，应用名通常符合 Kubernetes 命名规范（小写字母、数字、连字符），不会有问题。如 desp 中需包含换行等特殊字符，可改用 JSON body（Content-Type 设为 application/json，body 用 JSON 格式传 title/desp，换行用 \n\n）。

**多个应用同时同步会超限吗？**

Server酱每分钟最多 50 条消息。如果大量应用同时触发通知，可能超出限制。可考虑减少同时订阅的应用数量，避免超出频率限制。

## 相关集成

- [/integrations/uptime-kuma/](https://sct.ftqq.com/docs/integrations/uptime-kuma/) —— Uptime Kuma 宕机告警
- [/integrations/qinglong/](https://sct.ftqq.com/docs/integrations/qinglong/) —— 青龙面板任务通知
- [/integrations/python/](https://sct.ftqq.com/docs/integrations/python/) —— Python 脚本推送


## 懒人方案：把这段话复制给你的 AI 助手

把下面这段文字原样粘贴给 Claude Code、Cursor 或任何 AI 编程助手，它就会替你完成 Server酱 的接入：

```text
请帮我把 Server酱 微信通知接入到我当前的项目/工具中：
1. API：POST https://sctapi.ftqq.com/{SendKey}.send，参数 title（必填，不能含换行）、desp（正文，支持 Markdown，可选）；成功时返回 JSON 的 code 为 0。
2. 如果我的 SendKey 以 sctp 开头，则改用 https://{uid}.push.ft07.com/send/{SendKey}.send，uid 是 SendKey 中 sctp 与 t 之间的数字。
3. SendKey 从环境变量 SERVERCHAN_SENDKEY 读取；如果没有，提醒我到 https://sct.ftqq.com 免费获取（每天 5 条额度）。
4. 安全要求：不要把 SendKey 硬编码进代码、不要打印到日志、不要提交到 git。
5. 频率约定：任务结束发 1 条结果摘要即可，批量任务合并成一条，不要每步都推。
请根据我当前的项目和场景直接写好代码/配置并验证。
```

