Cloud Run 및 Eventarc 기반 Firebase용 Cloud Functions(2세대)를 통해 강력한 인프라, 성능 및 확장성에 대한 고급 제어, 함수 런타임에 대한 추가 제어를 사용할 수 있습니다. 이 미리보기 문서에서는 새로운 기능과 2세대 미리보기 버전에서 현재 사용할 수 있는 기능을 설명하고 새로운 API를 단독으로 또는 Firebase용 Cloud Functions(1세대) API와 함께 사용하는 방법에 대한 안내를 제공합니다.
Firebase용 Cloud Functions(2세대)의 새로운 기능
현재 Firebase용 Cloud Functions(2세대)에 적용되는 변경사항과 개선사항은 다음과 같습니다.
- 이제 함수 인스턴스는 한 번에 요청을 두 개 이상 실행할 수 있습니다.
전용 CPU가 하나 이상인 함수에 이 기능을 사용할 수 있습니다.
동시 실행 수준을 함수별로 또는 모든 함수(
setGlobalOptions
메서드 사용)에서 설정할 수 있습니다. 지정하지 않으면 전용 CPU가 1개 이상인 새 함수의 동시 요청 수가 80개로 기본 설정됩니다. 동시 요청 허용을 참조하세요. - 새로운
cors
설정으로 호출 가능한 함수와 HTTP 함수를 보호합니다. 이제 HTTP 트리거에도cors
설정이 있어 CORS를 더욱 간편하게 관리할 수 있습니다. - 이제 Cloud Functions가 Cloud Run을 기반으로 합니다. Cloud Run에 익숙하지 않더라도 걱정하지 않아도 됩니다. 이전과 마찬가지로 함수를 손쉽게 빌드할 수 있습니다. Cloud Run은 더욱 우수한 성능, 구성, 모니터링 등을 제공하는 최신 서버리스 제품입니다.
- Google은 여러 업계 선두 업체와 공동작업을 통해 CloudEvents 사양을 마련했습니다. 이제 이벤트 처리 함수에서 이 개방형 표준을 이벤트 서명으로 사용합니다.
- 새로운 트리거 유형에는 Firebase 알림 트리거, Firebase Extensions용 커스텀 이벤트 트리거, 태스크 큐 함수가 포함되어 있어 Cloud Tasks에서 리소스를 많이 사용하는 태스크를 실행할 수 있습니다(1세대에서도 태스크 큐 함수 사용 가능).
firebase-functions
SDK가 최신 자바스크립트를 기반으로 하도록 개편되었습니다. 2세대 함수를 전역적으로 구성하고 옵션 객체와 모듈식 가져오기를 사용할 수 있습니다.- 이제 장기 실행 워크로드에 필요한 경우 HTTP 함수의 제한 시간을 1시간(이전 9분에서 증가한 수준)으로 설정할 수 있습니다.
- 이제 함수 인스턴스가 App Engine 서비스 계정이 아닌 기본 컴퓨팅 서비스 계정으로 기본 설정됩니다.
미리보기 중 제한사항
이 Cloud Functions 2세대 미리보기 버전에는 아직 계획된 기능이 모두 포함되어 있지 않으며 Cloud Functions(1세대)와의 완전한 기능 패리티도 제공하지 않습니다. 사용할 수 있는 리전이 제한적이며 이 섹션에 설명된 현재 기타 제한사항이 적용됩니다.
현재 사용 가능한 Cloud Functions 트리거
Cloud Functions 2세대에서는 다음과 같은 Firebase 백그라운드 트리거를 지원합니다.
- Firebase 실시간 데이터베이스
- Cloud Storage
- Firebase 알림
- Pub/Sub
- 호출 가능 함수
- Cloud Tasks
- HTTP
- 예약 함수
- Firebase 인증 차단 함수
- Firebase 원격 구성
- Firebase Test Lab
- Cloud Firestore
Cloud Functions 2세대는 현재 다음 트리거를 지원하지 않습니다.
- Firebase 인증
onCreate
및onDelete
- Google 애널리틱스
기타 제한사항
다음 제한사항도 Cloud Functions 2세대에 적용됩니다.
- 완전한 관측 기능이 아직 Firebase CLI 또는 Firebase Console에서 지원되지 않습니다. 함수 인스턴스를 관찰하려면 Google Cloud 콘솔에서 기본 Cloud Run 서비스를 확인하세요.
- 현재 Firebase 로컬 에뮬레이터 도구 모음에서는 2세대의 HTTP, Cloud Storage, Pub/Sub 함수를 지원합니다.
- 콜드 스타트는 아직 2세대에서 최적화되지 않았으며 1세대보다 일시적으로 훨씬 느릴 수 있습니다. 하지만 최종 사용자는 동시 실행으로 인해 전반적으로 콜드 스타트를 줄일 수 있습니다.