Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

Bulut İşlevleri konumları

Bulut İşlevleri bölgeseldir , yani Bulut İşlevinizi çalıştıran altyapı belirli bölgelerde bulunur ve bu bölgelerdeki tüm alt bölgelerde yedekli olarak kullanılabilir olacak şekilde Google tarafından yönetilir.

İşlevlerinizi hangi bölgelerde çalıştıracağınızı seçerken, gecikme ve kullanılabilirlik dikkate alınmalıdır. Genellikle kullanıcılarınıza yakın bölgeleri seçebilirsiniz, ancak uygulamanızın kullandığı diğer ürün ve hizmetlerin konumunu da göz önünde bulundurmalısınız. Hizmetleri birden çok bölgede kullanmak, uygulamanızın gecikmesini ve fiyatlandırmasını etkileyebilir.

Cloud Functions, aşağıdaki bölgelerde Katman 1 fiyatlandırmasıyla sunulur:

  • us-central1 (Iowa)
  • us-east1 (Güney Karolina)
  • us-east4 (Kuzey Virginia)
  • europe-west1 (Belçika)
  • europe-west2 (Londra)
  • asia-east2 (Hong Kong)
  • asia-northeast1 (Tokyo)
  • asia-northeast2 (Osaka)

Cloud Functions, aşağıdaki bölgelerde Katman 2 fiyatlandırmasıyla sunulur:

  • us-west2 (Los Angeles)
  • us-west3 (Salt Lake City)
  • us-west4 (Las Vegas)
  • europe-central2 (Varşova)
  • europe-west3 (Frankfurt)
  • europe-west6 (Zürih)
  • northamerica-northeast1 (Montreal)
  • southamerica-east1 (Sao Paulo)
  • australia-southeast1 (Sidney)
  • asia-south1 (Mumbai)
  • asia-southeast2 (Jakarta)
  • asia-northeast3 (Seul)

Belirli bir projedeki belirli bir bölgedeki işlevlerin benzersiz (büyük/küçük harfe duyarlı olmayan) adları olmalıdır, ancak bölgeler veya projeler arasındaki işlevler aynı adı paylaşabilir.

Bölgeyi değiştirmek için en iyi uygulamalar

Varsayılan olarak işlevler us-central1 bölgesinde çalışır. Bunun, Cloud Storage paketi gibi bir olay kaynağının bölgesinden farklı olabileceğini unutmayın. Bir işlevin çalıştığı bölgeyi değiştirmeniz gerekirse, her bir işlev tetikleme türü için bu bölümdeki önerileri izleyin.

Bir işlevin çalıştığı region ayarlamak için, işlev tanımında region parametresini gösterildiği gibi ayarlayın:

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

functions.region() içinde virgülle ayrılmış birden çok bölge dizesi ileterek birden çok bölge belirtebilirsiniz. Önerilen prosedürler hakkında daha fazla bilgi için bir işlevin bölgesini değiştirme konusuna bakın.

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

HTTP ve çağrılabilir işlevler için, önce işlevinizi hedef bölgeye veya en çok beklenen müşterilerin bulunduğu yere en yakın yere ayarlamanızı ve ardından HTTP isteğini yeni işleve yeniden yönlendirmek için orijinal işlevinizi değiştirmenizi öneririz (aynı işleve sahip olabilirler). isim). HTTP işlevinizin istemcileri yönlendirmeleri destekliyorsa, yeni işlevinizin URL'si ile birlikte bir HTTP yönlendirme durumu (301) döndürmek için orijinal işlevinizi değiştirebilirsiniz. İstemcileriniz yönlendirmeleri iyi yönetemiyorsa , orijinal işlevden yeni işleve yeni bir istek başlatarak orijinal işlevden gelen isteği yeni işleve vekilleyebilirsiniz. Son adım, tüm istemcilerin yeni işlevi çağırdığından emin olmaktır.

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

Çağrılabilir işlevle ilgili olarak, istemci tarafından çağrılabilir kurulumlar, HTTP işlevleriyle aynı yönergeleri izlemelidir. İstemci aynı zamanda bir bölgeyi belirtebilirsiniz ve işlevi dışında herhangi bir bölgede çalışıyorsa yapmalıdır us-central1 .

İstemcide bölgeleri ayarlamak için, başlatma sırasında istenen bölgeyi belirtin:

hızlı

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

Amaç-C

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


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");

Birlik

firebase.Functions.FirebaseFunctions functions;

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

Arka plan işlevleri

Arka plan işlevleri, en az bir kez olay teslim semantiğini benimser; bu, bazı durumlarda yinelenen olaylar alabilecekleri anlamına gelir. Bu nedenle, idempotent olmak için işlevleri uygulamalısınız. İşleviniz zaten bağımsızsa, işlevi yeni bölgede aynı olay tetikleyicisiyle yeniden konuşlandırabilir ve yeni işlevin trafiği doğru şekilde aldığını doğruladıktan sonra eski işlevi kaldırabilirsiniz. Bu geçiş sırasında her iki işlev de olayları alacaktır. İşlevler için bölgeleri değiştirmek üzere önerilen komut dizisi için işlevin bölgesini değiştirme konusuna bakın.

İşleviniz şu anda bağımsız değilse veya bağımsızlığı bölgenin ötesine geçmiyorsa, işlevi taşımadan önce bağımsızlığı uygulamanızı öneririz.

En uygun bölge önerileri, olay tetikleyici türüne göre farklılık gösterir:

Tetik Tipi Bölge Önerisi
Bulut Firestore Cloud Firestore örnek konumuna en yakın bölge (sonraki bölüme bakın)
Gerçek Zamanlı Veritabanı Her zaman us-central1
Bulut depolama Cloud Storage paket konumuna en yakın bölge (sonraki bölüme bakın)
Diğerleri İşlevin içinde bir Realtime Database örneği, bir Cloud Firestore örneği veya bir Cloud Storage paketi ile etkileşim kuruyorsanız, önerilen bölge, bu kaynaklardan biri tarafından tetiklenen bir işleve sahipmişsiniz gibi olur. Aksi takdirde, us-central1 varsayılan bölgesini kullanın. Ayrıca, us-central1 bağlı işlevlerin us-central1 içinde bulunması gerektiğini us-central1 .

Cloud Firestore ve Cloud Storage konumlarına göre bölgelerin seçilmesi

İşlevler için kullanılabilir bölgeler, Cloud Firestore veritabanınız ve Cloud Storage paketleriniz için kullanılabilen bölgelerle her zaman tam olarak eşleşmez.

İşleviniz ve kaynağınız (veritabanı örneği veya Bulut Depolama paketi) farklı konumlardaysa, potansiyel olarak artan gecikme ve faturalandırma maliyetleriyle karşılaşabileceğinizi unutmayın .

İşte Bulut Firestore ve Bulut Depolama için en yakın fonksiyonları destekli bölgelerin bir haritalama, durumlar için aynı bölge desteklenmiyor nerede:

Cloud Firestore ve Cloud Storage için Bölge/Çoklu bölge Fonksiyonlar için en yakın bölge
nam5 veya us-central (çok bölgeli) us-central1
eur3 veya europe-west (çok bölgeli) europe-west1
asia-south1 (Mumbai) asia-east2