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 bu bölgelerdeki tüm alt bölgelerde yedekli olarak kullanılabilecek şekilde Google tarafından 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 arasında 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ğı 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ı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 konuma ayarlamanızı ve ardından orijinal işlevinizi, HTTP isteğini yeni işleve yönlendirmek için 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 yönetmiyorsa , 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 ayrıca bir bölge belirleyebilir ve işlev us-central1 dışında herhangi bir bölgede çalışıyorsa bunu yapması gerekir .

İ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 ş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
Bulut depolama Cloud Storage paket 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 Cloud Storage 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 Cloud 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 Bulut Depolama paketi) farklı yerlerde ise, 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 İş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