Cloud Functions konumları

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