Catch up on everthing we announced at this year's Firebase Summit. Learn more

Bulut İşlevleri konumları

Bulut Fonksiyonlar belirli bölgelerde bulunan Cloud Fonksiyonu çalışır ve karşısında artık olarak kullanılabilir olması için Google tarafından yönetilmektedir altyapıyı yani bölgesel olan bu bölgeler içindeki tüm bölgeleri .

İşlevlerinizi hangi bölgelerde çalıştıracağınızı seçerken, gecikme ve kullanılabilirlik dikkate alınmalıdır. Genellikle bölgeler kullanıcılara kapatmak seçebilir, ama aynı zamanda konumunu dikkate almalıdır diğer ürün ve hizmetlerde uygulama kullanımları söyledi. Uygulamanızın gecikme, hem de etkileyebilir birden bölgeler arasında hizmetleri kullanma fiyatlandırma .

Bulut Fonksiyonlar ile aşağıdaki bölgelerde kullanılabilir Tier 1 fiyatlandırma :

  • us-central1 (Iowa)
  • us-east1 (South Carolina)
  • us-east4 (Kuzey Virginia)
  • europe-west1 (Belçika)
  • europe-west2 (Londra)
  • asia-east1 (Tayvan)
  • asia-east2 (Hong Kong)
  • asia-northeast1 (Tokyo)
  • asia-northeast2 (Osaka)

Bulut Fonksiyonlar ile aşağıdaki bölgelerde kullanılabilir Tier 2 fiyatlandırma :

  • us-west2 (Los Angeles)
  • us-west3 (Salt Lake City)
  • us-west4 (Las Vegas)
  • northamerica-northeast1 (Montreal)
  • southamerica-east1 (Sao Paulo)
  • europe-west3 (Frankfurt)
  • europe-west6 (Zürih)
  • europe-central2 (Varşova)
  • australia-southeast1 (Sidney)
  • asia-south1 (Bombay)
  • asia-southeast1 (Singapur)
  • asia-southeast2 (Cakarta)
  • 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, fonksiyonlar çalıştırmak us-central1 bölge. 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 gerekiyorsa, her bir işlev tetikleyici türü için bu bölümdeki önerileri izleyin.

Bir fonksiyonu çalışır, set bölgeyi belirlemek için region gösterildiği gibi işlev tanımında parametresi:

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

İçeri virgülle ayrılmış birden fazla bölge dizeleri ileterek birden bölgeleri belirtebilir functions.region() . Bkz Bir işlevin bölgeyi değiştirmek önerilen prosedürleri hakkında daha fazla bilgi için.

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 yeniden yönlendirme durumu (301) döndürmek için orijinal işlevinizi değiştirebilirsiniz. Müşterileriniz iyi yönlendirmeleri işlemez yoksa, yeni işlevine özgün işlevinden yeni bir istek başlatarak vekil yeni işlevine özgün işlevinden isteği olabilir. 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:

Süratli

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. Yani, olmak işlevleri uygulamalıdır İdempotent . İş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. Bkz Bir işlevin bölgeyi değiştirmek işlevleri için bölgeleri değiştirmeye komutların tavsiye edilen dizisi için.

İş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 halde, varsayılan bölgesini kullanmak us-central1 . Firebase bağlı işlevlerin bulunması gerekir Barındırma da unutmayın 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.

Fonksiyonun ve kaynak (veritabanı örneği veya Cloud Storage grup) farklı konumlarda ise Not, o zaman potansiyel deneyim gecikme artmış ve verebilecek fatura maliyetleri .

İş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 (çoklu bölge) us-central1
eur3 veya europe-west (çoklu bölge) europe-west1
asia-south1 (Bombay) asia-east2