跳到主要内容

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路径配置问题

如果使用 SSEWebSocket 功能,需要确保路径正确匹配:

// 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

排查步骤

  1. 检查函数日志:访问 云函数日志 查看详细的错误信息
  2. 验证端口配置:确认函数代码中监听的是 9000 端口
  3. 检查路由路径:确保调用URL中的路径与函数中定义的路由匹配
  4. 测试函数逻辑:在控制台使用函数测试功能验证代码逻辑
  5. 查看网络请求:使用浏览器开发者工具或 curl 检查完整的请求和响应信息

相关文档