### [雨云API自动化管理实战:Python SDK调用与运维脚本](https://www.jiyueip.com/article/7712) **Published:** 2026-07-22T01:00:12 **Author:** 斑斓助理 **Excerpt:** 手动在雨云控制台点点点效率太低。本文用 Python 调雨云 API 实现实例查询、监控数据拉取、按标签批量操作,配合 crontab 做成自动化巡检脚本。 控制台点点点管一台机器还行,管理十来台就费劲了。雨云提供的 API 让你能用脚本操作云资源——查实例状态、拉监控数据、批量启停,全写成代码交给 crontab 跑。本文以 Python 为例讲怎么调。 ## 一、准备工作:API 密钥 先在雨云控制台生成 AccessKey(AK/SK),不同平台的叫法可能略有差异——API Key、Secret Key、Token 等。拿到后在脚本目录下建一个 `.env` 文件存放: RAINYUN\_AK=你的AccessKey RAINYUN\_SK=你的SecretKey **永远不要把 AK/SK 写进代码或提交到 git**。把 `.env` 加入 `.gitignore`。 ## 二、Python 调 API 基础封装 import requests import hmac, hashlib, time, os from dotenv import load\_dotenv load\_dotenv() AK = os.getenv('RAINYUN\_AK') SK = os.getenv('RAINYUN\_SK') BASE\_URL = 'https://api.rainyun.com' def sign\_request(method, path, body=''): ts = str(int(time.time())) msg = f"{method}n{path}n{ts}n{body}" sig = hmac.new(SK.encode(), msg.encode(), hashlib.sha256).hexdigest() return { 'X-RY-AccessKey': AK, 'X-RY-Timestamp': ts, 'X-RY-Signature': sig } def get\_instances(): path = '/v1/instances' headers = sign\_request('GET', path) resp = requests.get(f'{BASE\_URL}{path}', headers=headers) return resp.json() 上面是 API 签名通用模式——各家云厂商签法大同小异,核心是 timestamp + 请求路径 + 密钥做 HMAC,防重放和篡改。具体的 API 端点和签名算法以雨云官方文档为准。 ## 三、常用 API 场景 ### 查所有实例状态 遍历实例列表,滤出状态异常的(非 running),汇总成一句话推送到企业微信。每天跑一次,机器挂了早知道。 ### 拉监控数据 拉 CPU/内存/带宽/磁盘 IO 等指标,写入本地文件或推给 Prometheus pushgateway。不用在每台机器上装 exporter 也能拿到基础指标。 ### 按标签批量操作 如果实例打了标签(如 env=dev / env=prod),按标签筛选后对一组机器统一执行操作。比如每晚 10 点批量关 dev 标签的机器,省电费。 ## 四、自动化巡检脚本示例 #!/usr/bin/env python3 import requests # ... 签名函数如上 def daily\_check(): instances = get\_instances() bad = \[i for i in instances if i\['status'\] != 'running'\] if bad: msg = "【雨云告警】以下实例异常:n" msg += "n".join(\[f"{i\['name'\]} ({i\['id'\]}): {i\['status'\]}" for i in bad\]) send\_to\_wechat(msg) print(f"巡检完成,共 {len(instances)} 台实例,{len(bad)} 台异常") if \_\_name\_\_ == '\_\_main\_\_': daily\_check() 丢进 crontab:`0 9 * * * python3 /opt/scripts/rainyun_check.py`,每天 9 点跑一次。 ## 五、API 调用的几个坑 - 频率限制:API 一般有 QPS 限额,for 循环里不加 sleep 可能部分请求被拒; - 分页:查实例列表默认一页 20 条,机器多了要循环翻页把数据拉全; - 幂等操作:创建实例类操作注意幂等性,脚本跑两遍别创建出两台一样的机器; - 错误处理:网络超时、API 返回 5xx 要做重试和降级,别一个超时脚本直接挂。 ## 六、雨云部署建议 雨云新购用优惠码 **admin01** 走专属入口 [https://www.jiyueip.com/link/5617](https://www.jiyueip.com/link/5617) 五折。巡检脚本可以跑在任何一台能联网的机器上,不一定要在雨云服务器上跑。配合前面的 Prometheus 监控、Shell 自动化运维、frp 内网穿透,就形成一套完整的自动化管理闭环。 ## 常见问题 关于雨云 API 和自动化管理的高频疑问,下面一并解答。 **Tags:** 云服务器, 服务器运维, 网站运维, 雨云 **Categories:** 行业洞察 ---