FUNCTION_EXECUTE_FAIL
遇到错误?使用 AI 工具协助排查
错误原因
执行函数失败,请检查调用函数参数是否正确,排查函数逻辑,或通过 云函数日志 来查询错误信息。
HTTP云函数调用失败
如果您使用的是 HTTP云函数,出现 FUNCTION_EXECUTE_FAIL 错误可能是由以下原因导致:
1. 未配置监听端口或端口配置错误
问题描述:HTTP云函数默认需要监听 9000 端口,如果代码中未配置或配置了其他端口,会导致函数执行失败。
错误示例:
// ❌ 错误:未指定端口
app.listen();
// ❌ 错误:使用了错误的端口
app.listen(3000);
正确做法:
// ✅ 正确:监听 9000 端口
const PORT = process.env.PORT || 9000;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
2. 路由路径配置错误
问题描述:调用HTTP云函数时,路径必须与函数中定义的路由匹配。路径不匹配会导致 404 或函数执行失败。
错误示例:
// 函数中定义的路由
app.get('/api/users', (req, res) => {
res.json({ users: [] });
});
// ❌ 错误的调用路径(缺少 /api 前缀)
// https://xxx.app.tcloudbase.com/function-name/users
正确做法:
// ✅ 正确的调用路径(包含完整路由)
// https://xxx.app.tcloudbase.com/function-name/api/users
// 或者使用根路径路由
app.get('/', (req, res) => {
res.json({ message: 'Hello' });
});
// 调用: https://xxx.app.tcloudbase.com/function-name/
3. SSE/WebSocket路径配置问题
如果使用 SSE 或 WebSocket 功能,需要确保路径正确匹配:
// SSE 路由示例
app.get('/sse', (req, res) => {
const sse = context.sse?.();
// SSE 处理逻辑
});
// 调用: https://xxx.app.tcloudbase.com/function-name/sse
// WebSocket 路由示例
app.get('/ws', (req, res) => {
const { ws } = context;
// WebSocket 处理逻辑
});
// 调用: wss://xxx.app.tcloudbase.com/function-name/ws
排查步骤
- 检查函数日志:访问 云函数日志 查看详细的错误信息
- 验证端口配置:确认函数代码中监听的是
9000端口 - 检查路由路径:确保调用URL中的路径与函数中定义的路由匹配
- 测试函数逻辑:在控制台使用函数测试功能验证代码逻辑
- 查看网络请求:使用浏览器开发者工具或 curl 检查完整的请求和响应信息