Firebase Summit에서 발표된 모든 내용을 살펴보고 Firebase로 앱을 빠르게 개발하고 안심하고 앱을 실행하는 방법을 알아보세요. 자세히 알아보기

Cloud Functions 위치

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Cloud Functions는 지역적 입니다. 즉, Cloud Functions를 실행하는 인프라가 특정 지역에 있으며 해당 지역 내의 모든 영역에서 중복 사용 가능하도록 Google에서 관리합니다.

기능을 실행할 지역을 선택할 때 기본 고려 사항은 대기 시간과 가용성이어야 합니다. 일반적으로 사용자와 가까운 지역을 선택할 수 있지만 앱에서 사용하는 다른 제품 및 서비스 의 위치도 고려해야 합니다. 여러 지역에서 서비스를 사용하면 앱의 지연 시간과 가격 에 영향을 미칠 수 있습니다.

Cloud Functions는 Tier 1 가격 으로 다음 리전에서 사용할 수 있습니다.

  • us-central1 (아이오와)
  • us-east1 (사우스 캐롤라이나)
  • us-east4 (버지니아 북부)
  • us-west1 (오레곤)
  • europe-west1 (벨기에)
  • europe-west2 (런던)
  • asia-east1 (대만)
  • asia-east2 (홍콩)
  • asia-northeast1 (도쿄)
  • asia-northeast2 (오사카)

Cloud Functions는 Tier 2 가격 으로 다음 리전에서 사용할 수 있습니다.

  • us-west2 (로스앤젤레스)
  • us-west3 (솔트레이크시티)
  • us-west4 (라스베이거스)
  • northamerica-northeast1 (몬트리올)
  • southamerica-east1 (상파울루)
  • europe-west3 (프랑크푸르트)
  • europe-west6 (취리히)
  • europe-central2 (바르샤바)
  • Australia australia-southeast1 (시드니)
  • asia-south1 (뭄바이)
  • asia-southeast1 (싱가포르)
  • asia-southeast2 (자카르타)
  • asia-northeast3 (서울)

주어진 프로젝트의 주어진 지역에 있는 함수는 고유한(대소문자 구분하지 않음) 이름을 가져야 하지만 지역 또는 프로젝트 전체의 함수는 동일한 이름을 공유할 수 있습니다.

지역 변경 모범 사례

기본적으로 함수는 us-central1 지역에서 실행됩니다. 이는 Cloud Storage 버킷과 같은 이벤트 소스의 지역과 다를 수 있습니다. 함수가 실행되는 지역을 변경해야 하는 경우 각 함수 트리거 유형에 대해 이 섹션의 권장 사항을 따르십시오.

함수가 실행되는 영역을 설정하려면 다음과 같이 함수 정의에서 region 매개변수를 설정하십시오.

exports.myStorageFunction = functions
    .region('europe-west1')
    .storage
    .object()
    .onFinalize((object) => {
      // ...
    });

functions.region() 에서 쉼표로 구분된 여러 영역 문자열을 전달하여 여러 영역을 지정할 수 있습니다. 권장 절차에 대한 자세한 내용 은 함수 영역 변경을 참조하십시오.

HTTP 및 클라이언트 호출 가능 함수

HTTP 및 호출 가능한 함수의 경우 먼저 함수를 대상 지역 또는 가장 예상되는 고객이 있는 가장 가까운 위치로 설정한 다음 원래 함수를 변경하여 HTTP 요청을 새 함수로 리디렉션하는 것이 좋습니다. 이름). HTTP 함수의 클라이언트가 리디렉션을 지원하는 경우 새 함수의 URL과 함께 HTTP 리디렉션 상태(301)를 반환하도록 원래 함수를 간단히 변경할 수 있습니다. 클라이언트가 리디렉션을 잘 처리하지 못하는 경우 원래 기능에서 새 기능으로 새 요청을 시작하여 원래 기능에서 새 기능으로 요청을 프록시 할 수 있습니다. 마지막 단계는 모든 클라이언트가 새 함수를 호출하는지 확인하는 것입니다.

호출 가능한 함수에 대한 클라이언트 측 위치 선택

호출 가능 함수와 관련하여 클라이언트 호출 가능 설정은 HTTP 함수와 동일한 지침을 따라야 합니다. 클라이언트는 지역을 지정할 수도 있으며 함수가 us-central1 이외의 지역에서 실행되는 경우 그렇게 해야 합니다 .

클라이언트에서 영역을 설정하려면 초기화 시 원하는 영역을 지정합니다.

빠른

lazy var functions = Functions.functions(region:"europe-west1")

오브젝티브-C

@property(strong, nonatomic) FIRFunctions *functions;
// ...
self.functions = [FIRFunctions functionsWithRegion:@"europe-west1"];

편물


var functions = firebase.app().functions('europe-west1');

기계적 인조 인간

private FirebaseFunctions mFunctions;
// ...
mFunctions = FirebaseFunctions.getInstance("europe-west1");

C++

firebase::functions::Functions* functions;
// ...
functions = firebase::functions::Functions::GetInstance("europe-west1");

단일성

firebase.Functions.FirebaseFunctions functions;

functions = Firebase.Functions.FirebaseFunctions.GetInstance("europe-west1");

백그라운드 기능

백그라운드 기능은 최소 한 번 이벤트 전달 시맨틱을 채택합니다. 이는 일부 상황에서 중복 이벤트를 수신할 수 있음을 의미합니다. 따라서 멱등성이 되도록 함수를 구현해야 합니다. 함수가 이미 멱등성이 있는 경우 동일한 이벤트 트리거를 사용하여 새 지역에 함수를 재배포하고 새 함수가 트래픽을 올바르게 수신하는지 확인한 후 이전 함수를 제거할 수 있습니다. 이 전환 동안 두 함수 모두 이벤트를 수신합니다. 기능 영역을 변경하기 위한 권장 명령 순서는 기능 영역 변경을 참조하십시오.

함수가 현재 멱등성이 아니거나 해당 멱등성이 해당 영역을 벗어나지 않는 경우 함수를 이동하기 전에 먼저 멱등성을 구현하는 것이 좋습니다.

최적의 지역 권장 사항은 이벤트 트리거 유형에 따라 다릅니다.

트리거 유형 지역 추천
클라우드 파이어스토어 Cloud Firestore 인스턴스 위치와 가장 가까운 지역(다음 섹션 참조)
실시간 데이터베이스 항상 us-central1
클라우드 스토리지 Cloud Storage 버킷 위치에 가장 가까운 지역(다음 섹션 참조)
기타 실시간 데이터베이스 인스턴스, Cloud Firestore 인스턴스 또는 함수 내부의 Cloud Storage 버킷과 상호작용하는 경우 권장 지역은 해당 리소스 중 하나에 의해 트리거된 함수가 있는 것과 동일합니다. 그렇지 않으면 us-central1 의 기본 지역을 사용하십시오. 또한 Firebase 호스팅에 연결된 함수는 us-central1 에 있어야 합니다.

Cloud Firestore 및 Cloud Storage 위치를 기반으로 지역 선택

함수에 사용 가능한 지역이 Cloud Firestore 데이터베이스 및 Cloud Storage 버킷에 사용 가능한 지역과 항상 정확하게 일치하는 것은 아닙니다.

함수와 리소스(데이터베이스 인스턴스 또는 Cloud Storage 버킷)가 다른 위치에 있는 경우 지연 시간과 청구 비용 이 증가할 수 있습니다.

다음은 동일한 지역이 지원 되지 않는 경우 Cloud Firestore 및 Cloud Storage에 대해 가장 가까운 기능 지원 지역의 매핑입니다.

Cloud Firestore 및 Cloud Storage용 리전/다중 리전 기능에 가장 가까운 지역
nam5 또는 us-central (다중 지역) us-central1
eur3 또는 europe-west (다중 지역) europe-west1
asia-south1 (뭄바이) asia-east2