프론트엔드/Next.js
Next.js Vercel Functions timeout(시간초과) 해결 방법
다소스랩
2024. 11. 15. 10:23
반응형
테스트를 위해 Vercel에 배포한 서비스에서 timeout이 발생했습니다. 연산 시간이 긴 함수를 실행했을 때 발생했고 콘솔에 나온 오류는 504 Gateway 였습니다.
Vercel Functions는 플랜에 따라 기본값과 최대값이 다릅니다. (공식문서 바로가기)
플랜 | 최소 | 최대 |
Hobboy (무료) | 10초 | 60초 |
Pro | 15초 | 300초 |
Enterprise | 15초 | 900초 |
저는 무료 플랜을 사용하고 있어서 기본값이 10초였고, 10초가 지나자 timeout이 발생했습니다.
만약 60초 이상의 복잡하고 긴 연산을 해야하는 경우 Pro 버전으로 업그레이드를 해야합니다.
이 글에서는 기본값을 최대로 수정하는 방법에 대해 설명합니다.
대시보드에서 설정
프로젝트의 설정 페이지의 Functions 메뉴로 가면 Function Max Duration이 있습니다.
기본 최대 실행 시간(Default Max Duration)에 원하는 시간을 초단위로 입력하고 저장하면 됩니다.
vercel.json 파일 설정
루트 경로에 `vercel.json` 파일을 생성합니다.
{
"functions": {
"api/test.js": { // 특정 파일 지정
"maxDuration": 30
},
"api/*.js": { // 특정 패턴 지정
"maxDuration": 15
},
"src/app/**/*": { // 모든 경로 지정
"maxDuration": 60
},
}
}
- functions 객체 내부에 경로별로 최대값을 지정해줄 수 있습니다.
- src 디렉토리를 사용하는 경우 경로를 명시해야합니다.
반응형