함수 제한 시간

함수가 너무 오래 실행되면 시스템이 이를 종료하거나 제한하는 단계를 수행합니다. 이러한 제한 시간 기간은 기본적으로 60초이지만 함수를 배포할 때 이를 연장하거나 줄일 수 있습니다.

  • Cloud Functions(1세대)에서 최대 제한 시간 기간은 9분(540초)입니다.
  • Cloud Functions(2세대)에서 최대 제한 시간 기간은 HTTP 함수의 경우 60분(3,600초)이고 이벤트 기반 함수의 경우 9분(540초)입니다.

함수 실행이 제한 시간에 도달할 때 시스템 응답은 1세대 또는 2세대 함수인지 여부에 따라 달라집니다.

  • 1세대: 일반적으로 408에 해당하는 HTTP 오류 상태의 응답 메시지가 호출자에게 즉시 반환됩니다. 함수 실행은 중지됩니다.
  • 2세대: HTTP 504 오류 상태의 응답 메시지가 호출자에게 즉시 반환됩니다. 함수 인스턴스가 제한될 수 있지만 그 자체로 존재할 때까지 계속 작동합니다. 함수가 생성하는 모든 응답 메시지가 삭제되고 호출자에게 반환되지 않습니다.

이러한 2세대 함수의 동작은 예기치 않은 부작용을 일으킬 수 있습니다. 일반적인 증상은 한 요청의 작업 및 로그가 후속 요청으로 "누출"되는 경우입니다. 이를 방지하려면 다음 기술을 사용해서 함수에서 제한 시간이 발생하지 않도록 방지합니다.

  1. 제한 시간 값을 예상하는 함수 실행 시간보다 높게 설정합니다.
  2. 실행 중 남은 시간을 추적합니다. 그런 후 삭제 및 조기 반환을 수행합니다.

제한 시간 기간 설정

Google Cloud CLI 또는 Google Cloud Console을 사용하여 배포 시 함수의 제한 시간 기간을 설정할 수 있습니다.

gcloud

gcloud CLI를 사용하여 배포하는 경우 --timeout 플래그를 사용합니다.

gcloud functions deploy YOUR_FUNCTION_NAME --timeout=TIMEOUT_DURATION ...

Google Cloud CLI로 기존 제한 시간 기간을 수정하려면 새로운 제한 시간 값으로 함수를 다시 배포합니다.

콘솔

Google Cloud Console에서 함수를 만들 때 제한 시간 기간을 설정하려면 다음 안내를 따르세요.

  1. Google Cloud Console에서 Cloud Functions 개요 페이지로 이동합니다.
  2. 함수 만들기를 클릭합니다.
  3. 함수의 필수 필드를 작성합니다.
  4. 페이지 끝에서 런타임, 빌드... 섹션을 확장하고 런타임 탭을 클릭합니다.
  5. 제한 시간 필드에 초를 입력합니다.

    Google Cloud 콘솔에서 기존 제한 시간을 수정하려면 함수 개요 페이지에서 함수 이름을 클릭하여 세부정보 페이지로 이동합니다. 세부정보 페이지에서 수정을 클릭하고 런타임, 빌드... 섹션을 펼친 후 런타임 탭을 클릭합니다. 제한 시간 필드에서 값을 직접 수정하면 됩니다.