Next.js API路由无法调用Microsoft Azure云函数问题求助
Next.js API路由无法调用Microsoft Azure云函数问题求助
大家好,我最近碰到一个挺奇怪的问题,想请各位帮忙排查一下:
我在尝试从Next.js的API路由里调用Microsoft Azure云函数时,总是触发TypeError: fetch failed错误,具体的报错信息显示连接被拒绝了(connect ECONNREFUSED ::1:7071)。但诡异的是,直接把这个URL在浏览器里打开,却能正常获取到响应,完全没问题。
具体错误信息
TypeError: fetch failed at Object.fetch (node:internal/deps/undici/undici:14062:11) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) { cause: Error: connect ECONNREFUSED ::1:7071 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1487:16) at TCPConnectWrap.callbackTrampoline (node:internal/async_hooks:130:17) { errno: -4078, code: 'ECONNREFUSED', syscall: 'connect', address: '::1', port: 7071 } }
我的Next.js API路由代码
export async function GET(request: Request) { try { // Connect to mcrft azure func endpoint const response = await fetch( `${process.env.VERCEL_URL || "http://localhost:7071" }/api/getChatGPTSuggestion`, { cache: "no-store", } ); const textData = await response.text(); return new Response(JSON.stringify(textData.trim()), { status: 200, }); } catch (error) { console.log("error inside get route", error) if (error instanceof Error) { return new Response(error.message, { status: 500 }); } return new Response("Internal Server Error", { status: 500 }); } }
Azure云函数代码
const { app } = require('@azure/functions') const openai = require('../../lib/openai') app.http('getChatGPTSuggestion', { methods: ['GET'], authLevel: 'anonymous', handler: async (request, context) => { const response = await openai.createCompletion({ model: 'text-davinci-003', prompt: '...', max_tokens: 100, temperature: 0.8, }) context.log(`Http function processed request for url "${request.url}"`) const responseText = response.data.choices[0].text return { body: responseText, } }, })
我已经确认过URL和端口都是正确的,浏览器访问完全正常,但API路由调用就失败,实在搞不懂哪里出问题了,有没有朋友遇到过类似的情况,或者能给我一些排查方向?
备注:内容来源于stack exchange,提问作者Pickez
相关产品推荐
相关产品推荐

