Cloud Functions bölgeseldir. Yani işlevinizi çalıştıran altyapı belirli bölgelerde bulunur ve Google tarafından bu bölgelerdeki tüm alt bölgelerde yedek olarak kullanılabilir olacak şekilde yönetilir.
İşlevlerinizin hangi bölgelerde çalışacağını seçerken öncelikle gecikme ve kullanılabilirlik faktörlerini göz önünde bulundurmanız gerekir. Genellikle 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 bulundurmanız gerekir. Birden fazla bölgede hizmet kullanmak, uygulamanızın gecikmesini ve fiyatlandırmasını etkileyebilir.
İşlevler varsayılan olarak us-central1
bölgesinde çalışır. Bunun, Cloud Storage paketi gibi bir etkinlik kaynağının bölgesinden farklı olabileceğini unutmayın.
Bir işlevin çalıştığı bölgeyi nasıl belirteceğinizi bu sayfanın ilerleyen bölümlerinde öğrenebilirsiniz.
Desteklenen bölgeler
Bu bölümdeki listelerde energy_savings_leaf simgesi, bu bölgedeki elektriğin düşük karbon emisyonuyla üretildiğini gösterir. Daha fazla bilgi için Google Cloud bölgeleri için karbonsuz enerji başlıklı makaleyi inceleyin.
1. Katman fiyatlandırması
Cloud Functions, aşağıdaki bölgelerde 1. Katman fiyatlandırması ile kullanılabilir:
Bölge | Konum | Desteklenen ürün sürümleri | CO2 emisyonları |
---|---|---|---|
asia-east1 |
Tayvan | 1. nesil, 2. nesil | |
asia-east2 |
Hong Kong | Yalnızca 1. nesil | |
asia-northeast1 |
Tokyo | 1. nesil, 2. nesil | |
asia-northeast2 |
Osaka | 1. nesil, 2. nesil | |
europe-north1 |
Finlandiya | Yalnızca 2. nesil | energy_savings_leaf |
europe-southwest1 |
Madrid | Yalnızca 2. nesil | |
europe-west1 |
Belçika | 1. nesil, 2. nesil | enerji_tasarrufu_yaprak |
europe-west4 |
Hollanda | Yalnızca 2. nesil | |
europe-west8 |
Milano | Yalnızca 2. nesil | |
europe-west9 |
Paris | Yalnızca 2. nesil | energy_savings_leaf |
me-west1 |
Tel Aviv | Yalnızca 2. nesil | |
europe-west2 |
Londra | Yalnızca 1. nesil | |
us-central1 |
Iowa | 1. nesil, 2. nesil | energy_savings_leaf |
us-east1 |
Güney Carolina | 1. nesil, 2. nesil | |
us-east4 |
Kuzey Virginia | 1. nesil, 2. nesil | |
us-east5 |
Columbus | Yalnızca 2. nesil | |
us-south1 |
Dallas | Yalnızca 2. nesil | |
us-west1 |
Oregon | 1. nesil, 2. nesil | energy_savings_leaf |
2. Katman fiyatlandırması
Cloud Functions, 2. Katman fiyatlandırması ile aşağıdaki bölgelerde kullanılabilir:
Bölge | Konum | Desteklenen ürün sürümleri | CO2 emisyonu |
---|---|---|---|
asia-east2 |
Hong Kong | Yalnızca 2. nesil | |
asia-northeast3 |
Seul | 1. nesil, 2. nesil | |
asia-southeast1 |
Singapur | 1. nesil, 2. nesil | |
asia-southeast2 |
Cakarta | 1. nesil, 2. nesil | |
asia-south1 |
Mumbai | Yalnızca 2. nesil | |
asia-south2 |
Delhi, Hindistan | Yalnızca 2. nesil | |
australia-southeast1 |
Sidney | 1. nesil, 2. nesil | |
australia-southeast2 |
Melbourne | Yalnızca 2. nesil | |
europe-central2 |
Varşova | 1. nesil, 2. nesil | |
europe-west2 |
Londra | Yalnızca 2. nesil | |
europe-west3 |
Frankfurt | 1. nesil, 2. nesil | energy_savings_leaf |
europe-west6 |
Zürih | 1. nesil, 2. nesil | energy_savings_leaf |
europe-west10 |
Berlin | Yalnızca 2. nesil | |
europe-west12 |
Turin | Yalnızca 2. nesil | |
me-central1 |
Doha | Yalnızca 2. nesil | |
me-central2 |
Dammam | Yalnızca 2. nesil | |
northamerica-northeast1 |
Montreal | 1. nesil, 2. nesil | energy_savings_leaf |
northamerica-northeast2 |
Toronto | Yalnızca 2. nesil | enerji_tasarrufu_yaprak |
southamerica-east1 |
Sao Paulo | 1. nesil, 2. nesil | energy_savings_leaf |
southamerica-west1 |
Santiago, Şili | Yalnızca 2. nesil | |
us-west2 |
Los Angeles | 1. nesil, 2. nesil | |
us-west3 |
Salt Lake City | 1. nesil, 2. nesil | |
us-west4 |
Las Vegas | 1. nesil, 2. nesil |
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 arasında veya projeler genelinde işlevler aynı adı paylaşabilir.
Bölge belirtmeyle ilgili en iyi uygulamalar
İşlevler varsayılan olarak us-central1
bölgesinde çalışır. Bunun, Cloud Storage paketi gibi bir etkinlik kaynağının bölgesinden farklı olabileceğini unutmayın. Bir işlevin çalıştırıldığı bölgeyi belirtmeniz gerekiyorsa her işlev tetikleyicisi türü için bu bölümdeki önerileri uygulayın.
Bir işlevin çalışacağı bölgeyi ayarlamak için işlev tanımında region
parametresini aşağıdaki gibi ayarlayın:
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
region
parametresinde virgülle ayrılmış birden fazla bölge dizesi ileterek birden fazla bölge belirtebilirsiniz. Ayrıca, birçok arka plan tetikleyici türü için bir bölge belirtirken bölgeyle birlikte doğru etkinlik filtresini de belirtmeniz gerektiğini unutmayın. Yukarıdaki örnekte, etkinliği yayınlayan Cloud Firestore document
bu öğedir. Cloud Storage tetikleyicisi için etkinlik filtresi bucket
, Pub/Sub tetikleyicisi için topic
vb. olabilir.
Üretim trafiğini yöneten bir işlevin bölgesini değiştirme hakkında daha fazla bilgi için bir işlevin bölgesini değiştirme başlıklı makaleyi inceleyin.
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 beklenen çoğu müşterinin bulunduğu yere en yakın bölgeye ayarlamanızı, ardından orijinal işlevinizi HTTP isteğini yeni işleve yönlendirecek şekilde değiştirmenizi öneririz (aynı ada sahip olabilirler). HTTP işlevinizin desteğinin istemcileri yönlendirme yapıyorsa orijinal işlevinizi, yeni işlevinizin URL'siyle birlikte bir HTTP yönlendirme durumu (301) döndürecek şekilde değiştirebilirsiniz. Müşterileriniz yönlendirmeleri iyi şekilde işlemiyorsa 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ığında emin olmaktır.
Çağırılabilir işlevler için istemci tarafı yer seçimi
Çağırılabilir işlevle ilgili olarak, istemci çağrılabilir ayarları HTTP işlevleriyle aynı kurallara uymalıdır. İstemci bir bölge de belirtebilir ve işlev us-central1
dışındaki bir bölgede çalışıyorsa bunu yapmalıdır.
İstemcide bölgeleri ayarlamak için başlatma sırasında 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 yayınlama semantiği kullanır. Bu, bazı durumlarda yinelenen etkinlikler alabileceği anlamına gelir. Bu nedenle, işlevleri tekil olacak şekilde uygulamanız gerekir. İşleviniz zaten ideaklıysa aynı etkinlik tetikleyicisiyle işlevi yeni bölgede yeniden dağıtabilir 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 etkinlik alır. İşlevlerin bölgelerini değiştirmek için önerilen komut sırası için bir işlevin bölgesini değiştirme başlıklı makaleyi inceleyin.
İşleviniz şu anda tekil değilse veya tekilliği bölgenin ötesine geçmiyorsa işlevi taşımadan önce tekilliği uygulamanızı öneririz.
Optimum bölge önerileri, etkinlik tetikleyici türüne göre farklılık gösterir:
Tetikleyici Türü | Bölge Önerisi |
---|---|
Cloud Firestore | Cloud Firestore örneğinin bulunduğu konuma 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 | Fonksiyon içinde bir Realtime Database örneği, Cloud Firestore örneği veya Cloud Storage paketiyle etkileşime geçiyorsanız önerilen bölge, bu kaynaklardan biri tarafından tetiklenen bir işleviniz olduğunda önerilen bölgeyle aynıdır. Aksi takdirde, varsayılan us-central1 bölgesini kullanın.
Firebase Hosting öğesine bağlı işlevler herhangi bir bölgede olabilir ancak öneriler için barındırmaya dayalı barındırmaya genel bakış sayfasını inceleyin. |
Cloud Firestore ve Cloud Storage konumlarına göre bölgeleri seçme
İşlevler için kullanılabilen bölgeler her zaman Cloud Firestore veritabanınız ve Cloud Storage paketleriniz için kullanılabilen bölgelerle tam olarak eşleşmez.
İşleviniz ve kaynağınız (veritabanı örneği veya Cloud Storage paketi) farklı konumlardaysa gecikme ve faturalandırma maliyetlerinde artışla karşılaşabileceğinizi unutmayın.
Aynı bölgenin desteklenmediği durumlarda Cloud Firestore ve Cloud Storage için en yakın işlevlerin desteklenen bölgelerini aşağıda bulabilirsiniz:
Cloud Firestore ve Cloud Storage için Bölge/Çok bölgeli | İş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 |