Cloud Functions bölgeseldir; yani işlevi belirli bölgelerde yer alır ve Google tarafından yönetilir ve aktif olarak bu bölgelerdeki tüm alt bölgeler.
İşlevlerinizi çalıştıracağınız bölgeleri seçerken, gecikme ve kullanılabilirlik de göz önünde bulundurulmalıdır. Şunları yapabilirsiniz: genellikle kullanıcılarınıza yakın bölgeleri seçin, ancak kullanıcının, olayın diğer ürün ve hizmetler bir şablondur. Hizmetleri birden çok bölgede kullanmak, uygulamanızın gecikmesi ve fiyatlandırma.
Varsayılan olarak, işlevler us-central1
bölgesinde çalışır. Not:
Cloud Storage paketi gibi bir etkinlik kaynağının bölgesinden farklı.
Nasıl yapıldığını öğrenin
bir işlevin çalıştırıldığı bölgeyi belirtin
bu sayfada daha sonra ele alacağız.
Desteklenen bölgeler
Bu bölümdeki listelerde enerji_tasarrufu_yaprak simgesi, söz konusu bölgede elektriğin aşağıdaki düşük karbon emisyonu. Daha fazla bilgi için bkz. Google Cloud bölgeleri için karbonsuz enerji.
Cloud Functions aşağıdaki bölgelerde kullanılabilir: 1. Katman fiyatlandırması:
asia-east1
(Tayvan)asia-east2
(Hong Kong) yalnızca 1. nesilasia-northeast1
(Tokyo)asia-northeast2
(Osaka)europe-north1
(Finlandiya) enerji_tasarrufu_yaprak Yalnızca 2. nesileurope-west1
(Belçika) enerji_tasarrufu_yaprakeurope-west2
(Londra) yalnızca 1. nesilus-central1
(Iowa) enerji_tasarrufu_yaprakus-east1
(Güney Carolina)us-east4
(Kuzey Virginia)us-west1
(Oregon) enerji_tasarrufu_yaprak
Cloud Functions aşağıdaki bölgelerde kullanılabilir: 2. Katman fiyatlandırması:
- Yalnızca
asia-east2
(Hong Kong) 2. nesil asia-northeast3
(Seul)asia-southeast1
(Singapur)asia-southeast2
(Cakarta)- Yalnızca
asia-south1
(Mumbai) 2. nesil australia-southeast1
(Sidney)australia-southeast2
(Melbourne) yalnızca 2. nesileurope-central2
(Varşova)europe-west2
(Londra) yalnızca 2. nesileurope-west3
(Frankfurt)europe-west6
(Zürih) enerji_tasarrufu_yapraknorthamerica-northeast1
(Montreal) enerji_tasarrufu_yapraknorthamerica-northeast2
(Toronto) enerji_tasarrufu_yaprak Yalnızca 2. nesilsouthamerica-east1
(Sao Paulo) enerji_tasarrufu_yapraksouthamerica-west1
(Santiago, Şili) Yalnızca 2. nesilus-west2
(Los Angeles)us-west3
(Salt Lake City)us-west4
(Las Vegas)
Belirli bir projedeki belirli bir bölgede yer alan işlevler benzersiz olmalıdır (büyük/küçük harfe duyarlı değil). hassas değildir) fakat bölgeler arasında veya projeler genelindeki işlevler aynı ada sahip olmalıdır.
Bölge belirtmek için en iyi uygulamalar
Varsayılan olarak, işlevler us-central1
bölgesinde çalışır. Not:
Cloud Storage paketi gibi bir etkinlik kaynağının bölgesinden farklı. Eğer
bir işlevin çalıştırıldığı bölgeyi belirtmeniz,
her işlev tetikleyicisi türü için bu bölümde verilen önerileri inceleyin.
Bir işlevin çalıştırılacağı bölgeyi ayarlamak için, şurada region
parametresini ayarlayın:
işlev tanımını aşağıda görebilirsiniz:
Node.js
exports.firestoreAsia = onDocumentCreated(
{
document: "my-collection/{docId}",
region: "asia-northeast1",
},
(event) => {},
);
Python
# Before
@firestore_fn.on_document_created("my-collection/{docId}")
def firestore_trigger(event):
pass
# After
@firestore_fn.on_document_created("my-collection/{docId}",
region="asia-northeast1")
def firestore_trigger_asia(event):
pass
Virgülle ayrılmış birden çok bölge ileterek birden çok bölge belirtebilirsiniz
region
içindeki dizeler. Ayrıca, birçok sunucu için bir bölge belirtirken
arka plan tetikleyici türleri, doğru etkinlik filtresini belirtmeniz
yer alır. Yukarıdaki örnekte bu, Cloud Firestore document
değeridir
etkinliği kaynak olarak kullanır. Cloud Storage tetikleyicisi için etkinlik filtresini etkinleştirin
bucket
olabilir; bir Pub/Sub tetikleyicisi için bu değer topic
olacaktır.
Görüntüleyin bir işlevin bölgesini değiştirme öğesini kullanan bir fonksiyonun bölgesini değiştirme hakkında ne kadar iyi karşıladığını görebileceksiniz.
HTTP ve istemci tarafından çağrılabilir işlevler
HTTP ve çağrılabilir işlevler için öncelikle işlevinizi hedef bölge veya en çok beklenen müşterilerin bulunduğu yere en yakın olmalı ve sonra, HTTP isteğini yeni reklam koduna yönlendirmek için orijinal işlevinizi fonksiyonu (aynı ada sahip olabilirler). HTTP işlevinizin istemcileri bir HTTP değeri döndürecek şekilde orijinal işlevinizi yönlendirme durumunu (301) yeni işlevinizin URL'siyle birlikte ekleyin. Müşterileriniz yönlendirmesi iyi değilse orijinal yönlendirmeye ait isteğe proxy gönderebilirsiniz. işlevini başlatarak orijinal işlevden yeni bir istek başlatarak işlevini yeni işleve ekler. Son adım, tüm müşterilerin yeni işlev çağırır.
Çağrılabilir işlevler için istemci tarafı konum seçimi
Çağrılabilir işlevle ilgili olarak istemci çağrılabilir ayarları, aynı
kurallarından bazılarını ele alalım. Ayrıca, istemci bir bölge belirtebilir ve
İşlev us-central1
dışında bir bölgede çalışıyorsa zorunludur.
To için, başlangıçta istediğiniz bölgeyi belirtin:
Swift
lazy var functions = Functions.functions(region:"europe-west1")
Objective-C
@property(strong, nonatomic) FIRFunctions *functions;
// ...
self.functions = [FIRFunctions functionsWithRegion:@"europe-west1"];
Web
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");
Unity
firebase.Functions.FirebaseFunctions functions;
functions = Firebase.Functions.FirebaseFunctions.GetInstance("europe-west1");
Arka plan işlevleri
Arka plan işlevleri en az bir kez etkinlik teslimi anlamını benimser. Bu, bazı durumlarda yinelenen etkinlikler alabileceklerini. Bu nedenle, fonksiyonları idempotent olarak değiştirin. Fonksiyonunuz varsa, işlevi yeni bölgede şu kodla yeniden dağıtabilirsiniz: öğesini doğruladıktan sonra eski işlevi kaldırın. yeni işlev trafiği doğru şekilde alıyor. Bu geçiş sırasında hem işlevleri alır. Görüntüleyin bir işlevin bölgesini değiştirme tuşlarına basarak, fonksiyonların bölgelerini değiştirmek için önerilen komut dizisini inceleyebilirsiniz.
İşleviniz şu anda idempotent (ideal) değilse veya idempotency (idealliği) kapsam dışına çıkıyorsa, öncelikle mevcut idempotency (fonksiyonu taşımadan önce)
Optimum bölge önerileri, etkinlik tetikleyicisi türüne göre farklılık gösterir:
Tetikleyici Türü | Bölge Önerisi |
---|---|
Cloud Firestore | Cloud Firestore örneği konumuna en yakın bölge (sonraki bölüme bakın) |
Realtime Database | Her zaman us-central1 |
Cloud Storage | Cloud Storage paketi konumuna en yakın bölge (sonraki bölüme bakın) |
Diğer | Bir Realtime Database örneğiyle etkileşimde bulunuyorsanız bu örnek bir Cloud Firestore
işlevin içinde bir Cloud Storage paketi varsa,
bölge, şunlardan biri tarafından tetiklenen bir işlevinizin olduğu gibidir:
kaynaklar. Aksi takdirde, varsayılan us-central1 bölgesini kullanın.
Firebase Hosting öğesine bağlı işlevler herhangi bir bölgede olabilir ancak
barındırmaya dayalı barındırmaya genel bakış sayfasını ziyaret edin. |
Bölgeleri Cloud Firestore ve Cloud Storage konumlarına göre seçme
İşlevler için kullanılabilir bölgeler her zaman Cloud Firestore veritabanınız ve Cloud Storage için kullanılabilir bölgeler kovalar.
İşleviniz ve kaynağınız (veritabanı örneği veya Cloud Storage) farklı konumlarda yer alıyorsa daha fazla gecikme faturalandırma maliyetleri ile ilgili daha fazla bilgiyi aşağıda bulabilirsiniz.
Cloud Firestore için işlev tarafından desteklenen en yakın bölgelerin eşlemesini burada bulabilirsiniz ve Cloud Storage (aynı bölgenin desteklenmediği durumlar için):
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 |
europe-west4 (Hollanda) |
europe-west1 |
asia-south1 (Mumbai) |
asia-east2 |
asia-south2 (Delhi) |
asia-east2 |
australia-southeast2 (Melbourne) |
australia-southeast1 |