在微信云函数环境中,使用 axios 发起 HTTP 请求时,为什么会出现规律性的错误?具体表现为:
对 Gemini API 的请求,在11秒左右出现 503 Service Unavailable
对其他供应商 API 的请求,在2秒左右出现 429 Too Many Requests
这些问题在其他运行环境(如普通 Node.js 服务器)中都不会出现。
错误日志对比
案例1: Gemini API 503错误
02/06 16:38:49.132 - 开始 API 请求
02/06 16:39:01.107 - 错误: Request failed with status code 503
错误堆栈:
AxiosError: Request failed with status code 503
at settle (/var/user/node_modules/axios/dist/node/axios.cjs:2026:12)
at IncomingMessage.handleStreamEnd (/var/user/node_modules/axios/dist/node/axios.cjs:3142:11)
...
at async callGeminiAPI (/var/user/index.js:193:22)
### 案例2: 其他供应商 API 429错误
```
02/02 20:06:18.430 - 请求开始
02/02 20:06:20.305 - 错误: Request failed with status code 429
错误堆栈:
AxiosError: Request failed with status code 429
at settle (/var/user/node_modules/axios/dist/node/axios.cjs:2026:12)
at IncomingMessage.handleStreamEnd (/var/user/node_modules/axios/dist/node/axios.cjs:3142:11)
...
at async exports.main (/var/user/index.js:160:22)
```
关键问题
为什么相同的 axios 配置在云函数环境中会产生不同的错误?
为什么错误的时间点如此规律(503约11秒,429约2秒)?
为什么这些错误在其他运行环境中不会出现?
axios 在云函数环境中是否需要特殊的配置?
而且云函数有时候没问题,但又经常有问题?
503报错:
RequestId: dda5b665-6f98-46c1-8fd9-eddb8a32678f
时间:16:29:47 - 16:30:37
结果:重试3次后成功
RequestId: 8b96e244-079c-4105-aa9f-7cd4e7cd4aa3
时间:16:28:27 - 16:28:36
结果:直接成功
RequestId: 27d6d2d8-7f56-4204-82e5-a0234767a021
结果:失败
429报错:
RequestId: 5b0a449c-f37d-47fe-9dd9-4a04b04c21a5
时间线:
20:06:18.344 - 冷启动开始 (Coldstart: 659ms)
20:06:18.430 - 请求开始
20:06:20.305 - 请求失败 (429错误)
总持续时间:1879ms
关键指标:
- 冷启动:659ms (InitRuntime: 8ms, InitFunction: 651ms)
- 内存使用:从 24.52MB 增加到 47.746094MB
- 错误类型:429 Too Many Requests
通过分析两个典型的 Gemini API 请求案例,我们发现了非常规律的失败模式:
案例1 - RequestId: 2c624232-5d07-4b73-965c-0d39e5d4f8aa
16:40:13.729 - API 请求开始
16:40:25.245 - 503错误 (11.5秒)
16:40:37.841 - 重试成功 (总计25秒)
案例2 - RequestId: 707a646d-dacf-41bf-a1e3-e65717b2a932
17:06:21.949 - API 请求开始
17:06:34.345 - 503错误 (12.4秒)
17:06:43.616 - 重试成功 (总计23秒)
关键发现:
两个请求都在接近11-12秒时出现503错误
重试后的总处理时间都在23-25秒范围内
这种高度规律的失败时间点暗示这可能是云函数环境中的某种系统级限制或特殊处理机制?