いままで、あまりAPIを作ってこなかったので知りませんでしたが、Hobbyプランだと、 Serverless Functionは10秒でタイムアウト するようです。
ソースコード
src/app/api/develop/route.ts
import { NextResponse } from 'next/server'; export async function GET(request: Request) { const { searchParams } = new URL(request.url); const delay = Number(searchParams.get('delay') || 0); await new Promise(resolve => setTimeout(resolve, delay)); return NextResponse.json({ message: 'Hello!', delay, }); }
DEMO
https://vercel-api-prototype.vercel.app/api/develop?delay=0
パラメータでdelayを調整できます。
https://vercel-api-prototype.vercel.app/api/develop?delay=10000
10秒以上のdelayを設置すると504となります。
This Serverless Function has timed out.
Your connection is working correctly.
Vercel is working correctly.
504: GATEWAY_TIMEOUT
Code: FUNCTION_INVOCATION_TIMEOUT
VercelのプランをProにすると、60秒まではタイムアウトしなくなるので、Vercel上で処理に時間がかかるAPIを実行したい場合は、プランを上げる検討をしましょう。