Cloud Functions konumları

Cloud Functions bölgeseldir, yani işlevi belirli bölgelerde yer alır ve Google tarafından yönetilir ve aktif olarak bu bölgelerdeki tüm alt bölgelerde yer alır.

İşlevlerinizi çalıştıracağınız bölgeleri seçerken, gecikme ve kullanılabilirlik de göz önünde bulundurulmalıdır. Şunları yapabilirsiniz: genellikle kullanıcılarınıza yakın bölgeleri seçin, ancak kullanıcının, bulunduğu konumu da diğer ürün ve hizmetler bir şablondur. Hizmetleri birden çok bölgede kullanmak, uygulamanızın gecikmesi ve fiyatlandırma.

Varsayılan olarak, işlevler us-central1 bölgesinde çalışır. Not: Cloud Storage paketi gibi bir etkinlik kaynağının bölgesinden farklı olmalıdır. Nasıl yapıldığını öğrenin bir işlevin çalıştırıldığı bölgeyi belirtin bu sayfada daha sonra ele alacağız.

Desteklenen bölgeler

Bu bölümdeki listelerde enerji_tasarrufu_yaprak simgesi, söz konusu bölgede elektriğin aşağıdaki düşük karbon emisyonu. Daha fazla bilgi için bkz. Google Cloud bölgeleri için karbonsuz enerji.

Cloud Functions, aşağıdaki bölgelerde kullanılabilir: 1. Katman fiyatlandırması:

  • asia-east1 (Tayvan)
  • asia-east2 (Hong Kong) yalnızca 1. nesil
  • asia-northeast1 (Tokyo)
  • asia-northeast2 (Osaka)
  • europe-north1 (Finlandiya) enerji_tasarrufu_yaprak Yalnızca 2. nesil
  • europe-west1 (Belçika) enerji_tasarrufu_yaprak
  • europe-west2 (Londra) yalnızca 1. nesil
  • us-central1 (Iowa) enerji_tasarrufu_yaprak
  • us-east1 (Güney Carolina)
  • us-east4 (Kuzey Virginia)
  • us-west1 (Oregon) enerji_tasarrufu_yaprak

Cloud Functions, aşağıdaki bölgelerde kullanılabilir: 2. Katman fiyatlandırması:

  • Yalnızca asia-east2 (Hong Kong) 2. nesil
  • asia-northeast3 (Seul)
  • asia-southeast1 (Singapur)
  • asia-southeast2 (Cakarta)
  • Yalnızca asia-south1 (Mumbai) 2. nesil
  • australia-southeast1 (Sidney)
  • australia-southeast2 (Melbourne) yalnızca 2. nesil
  • europe-central2 (Varşova)
  • europe-west2 (Londra) yalnızca 2. nesil
  • europe-west3 (Frankfurt)
  • europe-west6 (Zürih) enerji_tasarrufu_yaprak
  • northamerica-northeast1 (Montreal) enerji_tasarrufu_yaprak
  • northamerica-northeast2 (Toronto) enerji_tasarrufu_yaprak Yalnızca 2. nesil
  • southamerica-east1 (Sao Paulo) enerji_tasarrufu_yaprak
  • southamerica-west1 (Santiago, Şili) Yalnızca 2. nesil
  • us-west2 (Los Angeles)
  • us-west3 (Salt Lake City)
  • us-west4 (Las Vegas)

Belirli bir projedeki belirli bir bölgede yer alan işlevler benzersiz olmalıdır (büyük/küçük harfe duyarlı değil). hassas değildir) fakat bölgeler arasında veya projeler genelindeki işlevler aynı ada sahip olmalıdır.

Bölge belirtmek için en iyi uygulamalar

Varsayılan olarak, işlevler us-central1 bölgesinde çalışır. Not: Cloud Storage paketi gibi bir etkinlik kaynağının bölgesinden farklı olmalıdır. Eğer bir işlevin çalıştırıldığı bölgeyi belirtmeniz, her işlev tetikleyicisi türü için bu bölümde verilen önerileri inceleyin.

Bir işlevin çalıştırılacağı bölgeyi ayarlamak için, şurada region parametresini ayarlayın: işlev tanımını aşağıda görebilirsiniz:

Node.js

exports.firestoreAsia = onDocumentCreated(
  {
    document: "my-collection/{docId}",
    region: "asia-northeast1",
  },
  (event) => {},
);

Python

# Before
@firestore_fn.on_document_created("my-collection/{docId}")
def firestore_trigger(event):
    pass

# After
@firestore_fn.on_document_created("my-collection/{docId}",
                                  region="asia-northeast1")
def firestore_trigger_asia(event):
    pass

Virgülle ayrılmış birden çok bölge ileterek birden çok bölge belirtebilirsiniz region içindeki dizeler. Ayrıca, birçok sunucu için bir bölge belirtirken arka plan tetikleyici türleri, doğru etkinlik filtresini belirtmeniz yer alır. Yukarıdaki örnekte bu, Cloud Firestore document öğesidir. etkinliği kaynak olarak kullanır. Cloud Storage tetikleyicisi için etkinlik filtresi bucket; bir Pub/Sub tetikleyicisi için bu değer topic olacaktır.

Görüntüleyin bir işlevin bölgesini değiştirme öğesini kullanan bir fonksiyonun bölgesini değiştirme hakkında ne kadar iyi karşıladığını görebileceksiniz.

HTTP ve istemci tarafından çağrılabilir işlevler

HTTP ve çağrılabilir işlevler için öncelikle işlevinizi hedef bölge veya en çok beklenen müşterilerin bulunduğu yere en yakın olmalı ve sonra, HTTP isteğini yeni reklam koduna yönlendirmek için orijinal işlevinizi fonksiyonu (aynı ada sahip olabilirler). HTTP işlevinizin istemcileri bir HTTP değeri döndürecek şekilde orijinal işlevinizi yönlendirme durumunu (301) yeni işlevinizin URL'siyle birlikte ekleyin. Müşterileriniz yönlendirmesi iyi değilse orijinal yönlendirmeye ait isteğe proxy gönderebilirsiniz. işlevini başlatarak orijinal işlevden yeni bir istek başlatarak işlevini yeni işleve ekler. Son adım, tüm müşterilerin yeni fonksiyonu çağırın.

Çağrılabilir işlevler için istemci tarafı konum seçimi

Çağrılabilir işlevle ilgili olarak istemci çağrılabilir ayarları, aynı kurallarından bazılarını ele alalım. Ayrıca, istemci bir bölge belirtebilir ve İşlev us-central1 dışında bir bölgede çalışıyorsa zorunludur.

To için, başlangıçta istediğiniz bölgeyi belirtin:

Swift

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

Objective-C

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

Web


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

Android

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

C++

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

Unity

firebase.Functions.FirebaseFunctions functions;

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

Arka plan işlevleri

Arka plan işlevleri en az bir kez etkinlik teslimi anlamını benimser. Bu, bazı durumlarda yinelenen etkinlikler alabileceklerini. Bu nedenle fonksiyonları idempotent olarak değiştirin. Fonksiyonunuz varsa, işlevi yeni bölgede şu kodla yeniden dağıtabilirsiniz: öğesini doğruladıktan sonra eski işlevi kaldırın. yeni işlev trafiği doğru şekilde alıyor. Bu geçiş sırasında hem işlevleri alır. Görüntüleyin bir işlevin bölgesini değiştirme tuşlarına basarak, fonksiyonların bölgelerini değiştirmek için önerilen komut dizisini inceleyebilirsiniz.

İşleviniz şu anda idempotent (ideal) değilse veya idempotency (idealliği) kapsam dışına çıkıyorsa, öncelikle mevcut idempotency (fonksiyonu taşımadan önce)

Optimum bölge önerileri, etkinlik tetikleyicisi türüne göre farklılık gösterir:

Tetikleyici Türü Bölge Önerisi
Cloud Firestore Cloud Firestore örneği konumuna en yakın bölge (sonraki bölüme bakın)
Realtime Database Her zaman us-central1
Cloud Storage Cloud Storage paketi konumuna en yakın bölge (sonraki bölüme bakın)
Diğer Bir Realtime Database örneğiyle etkileşim kuruyorsanız Cloud Firestore bir Cloud Storage paketi kullanıyorsanız, bölge, şunlardan biri tarafından tetiklenen bir işlevin kaynaklar. Aksi takdirde, varsayılan us-central1 bölgesini kullanın. Firebase Hosting'e bağlı işlevler herhangi bir bölgede olabilir ancak barındıran sunucusuza genel bakış makalesini inceleyebilirsiniz.

Cloud Firestore ve Cloud Storage konumlarına göre bölge seçme

İşlevler için kullanılabilir bölgeler her zaman Cloud Firestore veritabanınız ve Cloud Storage'ınız için kullanılabilecek bölgeler kovalar.

İşleviniz ve kaynağınız (veritabanı örneği veya Cloud Storage) farklı konumlarda yer alıyorsa daha fazla gecikme Faturalandırma maliyetleri hakkında daha fazla bilgi edinin.

Cloud Firestore'da işlev destekli en yakın bölgelerin eşlemesini aşağıda bulabilirsiniz ve Cloud Storage (aynı bölgenin desteklenmediği durumlarda):

Cloud Firestore ve Cloud Storage için Bölge/Çoklu Bölge İşlevler için en yakın bölge
nam5 veya us-central (çoklu bölge) us-central1
eur3 veya europe-west (çoklu bölge) europe-west1
europe-west4 (Hollanda) europe-west1
asia-south1 (Mumbai) asia-east2
asia-south2 (Delhi) asia-east2
australia-southeast2 (Melbourne) australia-southeast1