Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Cloud Functions konumları

Cloud Functions bölgeseldir , yani Cloud Function'ınızı çalıştıran altyapı belirli bölgelerde bulunur ve Google tarafından bu bölgelerdeki tüm bölgelerde yedekli olarak kullanılabilecek şekilde yönetilir.

İşlevlerinizi hangi bölgelerde çalıştıracağınızı seçerken, dikkat etmeniz gereken birincil husus gecikme ve kullanılabilirlik olmalıdır. Genel olarak 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, Katman 1 fiyatlandırmasıyla aşağıdaki bölgelerde kullanılabilir:

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

Cloud Functions, Aşama 2 fiyatlandırmasıyla aşağıdaki bölgelerde kullanılabilir:

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

Belirli bir projedeki belirli bir bölgedeki işlevler benzersiz (büyük / küçük harfe duyarlı olmayan) adlara sahip olmalıdır, ancak bölgeler arasında veya projeler genelinde 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, Depolama paketi gibi bir olay kaynağı bölgesinden farklı olabileceğini unutmayın. Bir işlevin çalıştığı bölgeyi değiştirmeniz gerekirse, her işlev tetik türü için bu bölümdeki önerileri izleyin.

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

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

functions.region() içinde birden çok virgülle ayrılmış bölge dizesini 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ılabilen 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 konuma ayarlamanızı ve ardından orijinal işlevinizi, HTTP isteğini yeni işleve yönlendirecek şekilde değiştirmenizi öneririz (aynı işlevlere sahip olabilirler). adı). HTTP işlevinizin istemcileri yeniden yönlendirmeleri destekliyorsa, orijinal işlevinizi yeni işlevinizin URL'si ile birlikte bir HTTP yeniden yönlendirme durumu (301) döndürecek şekilde değiştirebilirsiniz. İstemcileriniz yeniden yönlendirmeleri iyi bir şekilde işlemezse , orijinal işlevden yeni işleve yeni bir istek başlatarak isteği orijinal işlevden yeni işleve yönlendirebilirsiniz. Son adım, tüm istemcilerin yeni işlevi çağırmasını sağlamaktır.

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

Çağrılabilir işlevle ilgili olarak, istemci ç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şlangıçta istenen bölgeyi belirtin:

Swift

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 teslimi anlamsalını benimser, bu da bazı durumlarda yinelenen olayları alabilecekleri anlamına gelir. Yani idempotent olmak için işlevler uygulamalısınız. İşleviniz zaten idempotent ise, işlevi yeni bölgede aynı olay tetikleyicisiyle yeniden konuşlandırabilir ve yeni işlevin doğru bir şekilde trafik 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. İşlevlerin bölgelerini değiştirmek için önerilen komut dizisi için bir işlevin bölgesini değiştirme konusuna bakın.

İşleviniz şu anda idempotent değilse veya idempotensi bölgenin ötesine uzanmıyorsa, işlevi taşımadan önce ilk olarak idempotency uygulamanızı öneririz.

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

Tetik Tipi Bölge Tavsiyesi
Cloud Firestore Cloud Firestore örnek konumuna en yakın bölge (sonraki bölüme bakın)
Gerçek Zamanlı Veritabanı Daima us-central1
Depolama Depolama paketi konumuna en yakın bölge (sonraki bölüme bakın)
Diğerleri Bir Realtime Database örneği, bir Cloud Firestore örneği veya işlevin içindeki bir Depolama paketi ile etkileşim halindeyseniz önerilen bölge, bu kaynaklardan biri tarafından tetiklenen bir işleviniz varmış gibi aynıdır. Aksi takdirde, us-central1 varsayılan bölgesini kullanın. Ayrıca, us-central1 bağlı işlevlerin us-central1 bulunması gerektiğini us-central1 .

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

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

İşleviniz ve kaynağınız (veritabanı örneği veya Depolama paketi) farklı yerlerde ise, potansiyel olarak artan gecikme ve faturalama 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 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
asia-south1 (Mumbai) asia-east2