Bulut İşlevleri bölgeseldir , yani Bulut İşlevinizi çalıştıran altyapı belirli bölgelerde bulunur ve bu bölgelerdeki tüm bölgelerde yedekli olarak kullanılabilir olacak şekilde Google tarafından yönetilir.
İşlevlerinizi hangi bölgelerde çalıştıracağınızı seçerken, göz önünde bulundurmanız gereken başlıca hususlar 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.
desteklenen bölgeler
Bu bölümdeki listelerde bulunan energy_savings_leaf simgesi, bu bölge için elektriğin düşük karbon emisyonuyla üretildiğini gösterir. Daha fazla bilgi için Google Cloud bölgeleri için karbon içermeyen enerji bölümüne bakın.
Cloud Functions, Katman 1 fiyatlandırmasıyla aşağıdaki bölgelerde kullanılabilir:
-
asia-east1
(Tayvan) -
asia-east2
(Hong Kong) -
asia-northeast1
(Tokyo) -
asia-northeast2
(Osaka) -
europe-west1
(Belçika) energy_savings_leaf -
europe-west2
(Londra) -
us-central1
(Iowa) enerji_savings_leaf -
us-east1
(Güney Karolina) -
us-east4
(Kuzey Virginia) -
us-west1
(Oregon) enerji_savings_leaf
Cloud Functions, Katman 2 fiyatlandırmasıyla aşağıdaki bölgelerde kullanılabilir:
-
asia-northeast3
(Seul) -
asia-southeast1
(Singapur) -
asia-southeast2
(Cakarta) -
asia-south1
(Mumbai) -
australia-southeast1
(Sidney) -
europe-central2
(Varşova) -
europe-west3
(Frankfurt) -
europe-west6
(Zürih) energy_savings_leaf -
northamerica-northeast1
(Montreal) energy_savings_leaf -
southamerica-east1
(Sao Paulo) energy_savings_leaf -
us-west2
(Los Angeles) -
us-west3
(Salt Lake City) -
us-west4
(Las Vegas)
Belirli bir projede belirli bir bölgedeki işlevlerin benzersiz (büyük/küçük harfe duyarsız) 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 grubu 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 işlev tetikleme türü için bu bölümdeki önerileri uygulayın.
Bir fonksiyonun çalıştığı bölgeyi ayarlamak için fonksiyon tanımındaki region
parametresini 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 dizesi geçirerek birden çok bölge belirleyebilirsiniz. Önerilen prosedürler hakkında daha fazla bilgi için bir fonksiyonun 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 yönlendirmek için orijinal işlevinizi değiştirmenizi öneririz (aynısına sahip olabilirler) isim). HTTP işlevinizin istemcileri yönlendirmeleri destekliyorsa, yeni işlevinizin URL'siyle birlikte bir HTTP yönlendirme durumu (301) döndürmek için orijinal işlevinizi değiştirebilirsiniz. İstemcileriniz yönlendirmeleri iyi işlemezse, orijinal işlevden yeni işleve yeni bir istek başlatarak isteği orijinal işlevden yeni işleve proxy olarak gönderebilirsiniz. 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 ayrıca bir bölge belirtebilir ve işlev us-central1
dışında herhangi bir bölgede çalışıyorsa bunu yapmalıdır .
İ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"];
ağ
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, yeni işlevin trafiği doğru şekilde aldığını doğruladıktan sonra işlevi aynı olay tetikleyicisiyle yeni bölgede yeniden konuşlandırabilir ve eski işlevi kaldırabilirsiniz. Bu geçiş sırasında, her iki işlev de olay alacaktır. İşlevler için bölgeleri değiştirmek üzere önerilen komut dizisi için bir 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 uzanmıyorsa, işlevi taşımadan önce bağımsızlığı uygulamanızı öneririz.
Optimum bölge önerileri, olay tetikleyici türüne göre farklılık gösterir:
Tetikleme Türü | Bölge Önerisi |
---|---|
Bulut 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 grup 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 grubuyla etkileşim kuruyorsanız önerilen bölge, bu kaynaklardan biri tarafından tetiklenen bir işleve sahip olmanızla aynıdır. Aksi takdirde, us-central1 varsayılan bölgesini kullanın. Firebase Hosting'e bağlı işlevlerin us-central1 konumunda olması gerektiğini de unutmayın. |
Cloud Firestore ve Cloud Storage konumlarına göre bölgeleri seçme
İşlevler için kullanılabilir bölgeler, Cloud Firestore veritabanınız ve Cloud Storage klasörleriniz için kullanılabilir olan bölgelerle her zaman tam olarak eşleşmez.
İşleviniz ve kaynağınız (veritabanı örneği veya Cloud Storage grubu) farklı konumlardaysa, potansiyel olarak artan gecikme ve faturalandırma maliyetleriyle karşılaşabileceğinizi unutmayın.
Aynı bölgenin desteklenmediği durumlar için, Cloud Firestore ve Cloud Storage için işlevlerin en yakın desteklenen bölgelerinin bir eşlemesini burada bulabilirsiniz:
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 (ç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 |