İşlevleri yönetme


Firebase CLI komutlarını kullanarak işlevleri dağıtabilir, silebilir ve değiştirebilirsiniz veya işlevlerinizin kaynak kodunda çalışma zamanı seçeneklerini ayarlayın.

İşlev dağıtma

İşlevleri dağıtmak için şu Firebase KSA komutunu çalıştırın:

firebase deploy --only functions

Varsayılan olarak Firebase CLI, kaynağınızdaki tüm işlevleri aynı anda dağıtır. Projenizde 5’ten fazla fonksiyon varsa --only işaretini belirli işlev adlarıyla kullanmanızı öneririz. fonksiyonları dağıtıp tıklayın. Bu şekilde belirli işlevleri dağıtmak dağıtım sürecini hızlandırır ve dağıtım kotalarına takılmanızı önler. Örneğin:

firebase deploy --only functions:addMessage,functions:makeUppercase

Çok sayıda işlev dağıtırken standart kotayı aşabilir ve HTTP 429 veya 500 hata mesajları alabilirsiniz. Bu sorunu çözmek için işlevleri 10 veya daha az sayıda grup halinde dağıtın.

Kullanılabilir komutların tam listesi için Firebase CLI referansına göz atın.

Varsayılan olarak Firebase CLI, functions/ kaynak kodudur. İsterseniz fonksiyonları düzenleyebilirsiniz veya birden fazla dosya setinde kullanabilirsiniz.

İşlevleri silin

Daha önce dağıtılan işlevleri aşağıdaki yöntemlerle silebilirsiniz:

  • functions:delete ile Firebase KSA'da açıkça
  • Google Cloud konsolunda açıkça gönderin.
  • Dağıtım öncesinde işlevi kaynaktan kaldırarak dolaylı olarak.

Tüm silme işlemleri işlevi üretimden kaldırmadan önce onaylamanızı ister.

Firebase CLI'de açık işlev silme, işlev gruplarının yanı sıra birden fazla bağımsız değişkeni destekler ve belirli bir bölgede çalışan bir işlev belirtmenize olanak tanır. Ayrıca, onay istemini geçersiz kılabilirsiniz.

# Delete all functions that match the specified name in all regions.
firebase functions:delete myFunction
# Delete a specified function running in a specific region.
firebase functions:delete myFunction --region us-east-1
# Delete more than one function
firebase functions:delete myFunction myOtherFunction
# Delete a specified functions group.
firebase functions:delete groupA
# Bypass the confirmation prompt.
firebase functions:delete myFunction --force

firebase deploy, örtülü işlev silme özelliğiyle kaynağınızı ayrıştırır ve dosyadan kaldırılan tüm işlevleri üretimden kaldırır.

Bir işlevin adını, bölgesini veya tetikleyicisini değiştirin

Üretim trafiğini yöneten işlevlerin bölgelerini veya tetikleyicisini yeniden adlandırıyor ya da değiştiriyorsanız değişiklik sırasında etkinlikleri kaybetmemek için bu bölümdeki adımları uygulayın. Bu adımları uygulamadan önce işlevi idempotent'tir, çünkü işlevinizin hem yeni sürümü hem de eski sürümü zaman alabilir.

İşlevleri yeniden adlandırma

Bir işlevi yeniden adlandırmak için kaynağınızda işlevin yeniden adlandırılmış yeni bir sürümünü oluşturun ve ardından iki ayrı dağıtım komutu çalıştırın. İlk komut, yeni adlandırılmış işlevi dağıtır ve ikinci komut, daha önce dağıtılan sürümü kaldırır. Örneğin, HTTP tetiklenmiş bir webhook'unuz varsa bu örnekte kodu aşağıdaki gibi revize edin:

Node.js

// before
const {onRequest}  = require('firebase-functions/v2/https');

exports.webhook = onRequest((req, res) => {
    res.send("Hello");
});

// after
const {onRequest}  = require('firebase-functions/v2/https');

exports.webhookNew = onRequest((req, res) => {
    res.send("Hello");
});

Python

# before
from firebase_functions import https_fn

@https_fn.on_request()
def webhook(req: https_fn.Request) -> https_fn.Response:
    return https_fn.Response("Hello world!")

# after
from firebase_functions import https_fn

@https_fn.on_request()
def webhook_new(req: https_fn.Request) -> https_fn.Response:
    return https_fn.Response("Hello world!")

Ardından yeni işlevi dağıtmak için aşağıdaki komutları çalıştırın:

# Deploy new function
firebase deploy --only functions:webhookNew

# Wait until deployment is done; now both functions are running

# Delete webhook
firebase functions:delete webhook

Bir işlevin bölgesini veya bölgelerini değiştirme

Üretim trafiğini yöneten bir işlev için belirtilen bölgeleri değiştiriyorsanız aşağıdaki adımları sırayla uygulayarak etkinlik kaybını önleyebilirsiniz:

  1. İşlevi yeniden adlandırın ve bölgesini veya bölgelerini istediğiniz gibi değiştirin.
  2. Yeniden adlandırılan işlevi dağıtın. Bu durumda, aynı kod her iki bölge grubunda da geçici olarak çalıştırılır.
  3. Önceki işlevi silin.

Örneğin, şu anda us-central1'un varsayılan işlev bölgesinde bulunan ve Cloud Firestore tarafından tetiklenen bir işleviniz varsa ve bu işlevi asia-northeast1'ye taşımak istiyorsanız önce işlevi yeniden adlandırmak ve bölgeyi düzeltmek için kaynak kodunuzu değiştirmeniz gerekir.

Node.js

// before
exports.firestoreTrigger = onDocumentCreated(
  "my-collection/{docId}",
  (event) => {},
);

// after
exports.firestoreTriggerAsia = onDocumentCreated(
  {
    document: "my-collection/{docId}",
    region: "asia-northeast1",
  },
  (event) => {},
);

Güncellenen kodda, bölgeyle birlikte doğru etkinlik filtresi (bu durumda document) belirtilmelidir. Daha fazla bilgi için Cloud Functions konumları konusuna bakın.

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

Ardından şu komutu çalıştırarak dağıtın:

firebase deploy --only functions:firestoreTriggerAsia

Artık çalışan iki aynı işlev var: firestoreTrigger, us-central1'te, firestoreTriggerAsia ise asia-northeast1'te çalışıyor.

Ardından firestoreTrigger öğesini silin:

firebase functions:delete firestoreTrigger

Artık yalnızca bir işlev var: asia-northeast1 içinde çalışan firestoreTriggerAsia.

Bir işlevin tetikleyici türünü değiştirme

Cloud Functions for Firebase dağıtımınızı zaman içinde geliştirdikçe fonksiyonun tetikleyici türünü çeşitli nedenlerle değiştirmem gerekiyor. Örneğin, Firebase Realtime Database türünü değiştirmek isteyebilirsiniz veya Cloud Firestore etkinliği başka türe.

Bir işlevin etkinlik türü, yalnızca firebase deploy çalıştırmanız gerekir. Hataları önlemek için bir işlevin tetikleyici türünü şu şekilde değiştirin:

  1. Kaynak kodunu, istenen tetikleyici türüne sahip yeni bir işlev içerecek şekilde değiştirin.
  2. İşlevi dağıtın. Bu işlem, hem eski hem de yeni işlevlerin geçici olarak çalıştırılmasına neden olur.
  3. Eski işlevi Firebase KSA'yı kullanarak üretimden açık bir şekilde silin.

Örneğin, bir nesne çalıştırıldığında tetiklenen bir ancak sonrasında nesne sürümü oluşturma ve bunun yerine arşiv etkinliğine abone olmak istiyorsanız işlevini yeni tetikleyici türüne göre düzenleyin.

Node.js

// before
const {onObjectDeleted} = require("firebase-functions/v2/storage");

exports.objectDeleted = onObjectDeleted((event) => {
    // ...
});

// after
const {onObjectArchived} = require("firebase-functions/v2/storage");

exports.objectArchived = onObjectArchived((event) => {
    // ...
});

Python

# before
from firebase_functions import storage_fn

@storage_fn.on_object_deleted()
def object_deleted(event):
  # ...

# after 
from firebase_functions import storage_fn

@storage_fn.on_object_archived()
def object_archived(event):
  # ...

Ardından, eski işlevi silmeden önce yeni işlevi oluşturmak için aşağıdaki komutları çalıştırın:

# Create new function objectArchived
firebase deploy --only functions:objectArchived

# Wait until deployment is done; now both objectDeleted and objectArchived are running

# Delete objectDeleted
firebase functions:delete objectDeleted

Çalışma zamanı seçeneklerini ayarlama

Cloud Functions for Firebase, Node.js gibi çalışma zamanı seçeneklerini belirlemenize olanak tanır. çalışma zamanı sürümü ve işlev başına zaman aşımı, bellek ayırma ve minimum/maksimum işlev örneklerini anlatacağım.

En iyi uygulama olarak, bu seçeneklerin (Node.js sürümü hariç) yapılandırma nesnesini ifade eder. Bu RuntimeOptions nesnesi, işlevinizin çalışma zamanı seçenekleri için doğru kaynaktır ve diğer yöntemlerle (ör. Google Cloud Console veya gcloud CLI aracılığıyla) ayarlanan seçenekleri geçersiz kılar.

Geliştirme iş akışınız Google Cloud Console veya gcloud CLI aracılığıyla çalışma zamanı seçeneklerini manuel olarak ayarlamayı içeriyorsa ve bu değerlerin her dağıtımda geçersiz kılınmasını istemiyorsanız preserveExternalChanges seçeneğini true olarak ayarlayın. Bu seçenek true olarak ayarlandığında Firebase, kodunuzda ayarlanan çalışma zamanı seçeneklerini işlevinizin şu anda dağıtılmış sürümünün ayarlarıyla aşağıdaki önceliğe göre birleştirir:

  1. Seçenek, işlev kodunda ayarlandı: Harici değişiklikleri geçersiz kıl.
  2. Seçenek, işlev kodunda RESET_VALUE olarak ayarlandı: Harici değişiklikleri varsayılan değerle geçersiz kılın.
  3. Seçenek, işlev kodunda değil, şu anda dağıtılan işlevde ayarlanmıştır: Dağıtılan işlevde belirtilen seçeneği kullanın.

preserveExternalChanges: true seçeneği, kodunuz artık işlevlerinizin çalışma zamanı seçenekleri için tam doğruluk kaynağı olmayacağından çoğu senaryo için önerilmez. Bu özelliği kullanıyorsanız bir işlevin tam yapılandırmasını görüntülemek için Google Cloud Console'u kontrol edin veya gcloud CLI'yi kullanın.

Node.js sürümünü ayarlama

Cloud Functions için Firebase SDK'sı, Node.js çalışma zamanı seçimine izin verir. Bir projedeki tüm işlevleri yalnızca çalışma zamanında çalıştırmayı seçebilirsiniz ortama nasıl aktarabilirsiniz?

  • Node.js 22 (önizleme)
  • Düğüm.js 20
  • Node.js 18

Node.js Sürüm 14 ve 16 desteği sonlandırılmış olup 2025'in başlarında kullanımdan kaldırılacaktır. Dağıtım devre dışı bırakılır.

Node.js sürümünü ayarlamak için:

Sürümünü, başlatma sırasında functions/ dizininizde oluşturulan package.json dosyasının engines alanında ayarlayabilirsiniz. Örneğin, yalnızca 18 sürümünü kullanmak için package.json'teki şu satırı düzenleyin:

  "engines": {"node": "20"}

Yarn paket yöneticisi kullanıyorsanız veya engines alanında, Cloud Functions için Firebase SDK'sının çalışma zamanını şurada ayarlayabilirsiniz: Bunun yerine firebase.json:

  {
    "functions": {
      "runtime": "nodejs18" // or nodejs20
    }
  }

CLI, herhangi bir değer yerine firebase.json içinde ayarlanan değeri kullanır veya package.json içinde ayrı olarak ayarladığınız aralık.

Node.js çalışma zamanınızı yükseltin

Node.js çalışma zamanınızı yükseltmek için:

  1. Projenizin Blaze fiyatlandırma planı.
  2. Firebase KSA 11.18.0 veya sonraki bir sürümü kullandığınızdan emin olun.
  3. İlk kullanıma hazırlama sırasında functions/ dizininizde oluşturulan package.json dosyasında engines değerini değiştirin. Örneğin, 18 sürümünden 20 sürümüne geçiyorsanız giriş şu şekilde görünmelidir: "engines": {"node": "20"}
  4. İsteğe bağlı olarak, değişikliklerinizi Firebase Local Emulator Suite.
  5. Tüm işlevleri yeniden dağıtın.

Python sürümünü ayarlayın

Cloud Functions 12.0.0 ve sonraki sürümler için Firebase SDK'sı, Python çalışma ortamının seçilmesine olanak tanır. firebase.json öğesinde çalışma zamanı sürümünü aşağıdaki gibi ayarlayın:

  {
    "functions": {
      "runtime": "python310" // or python311
    }
  }

Ölçeklendirme davranışını kontrol etme

Varsayılan olarak Cloud Functions for Firebase, çalışan örneklerin sayısını gelen isteklerin sayısına göre ölçeklendirir. Trafik azaldığında örnek sayısını sıfıra kadar düşürebilir. Ancak, uygulamanız gereken yerlerde ve baştan başlatma sayısını sınırlamak isterseniz bunu değiştirebilirsiniz. görüntülenebilecek minimum container örneği sayısını belirterek ve talepleri karşılamaya hazır tutulduğundan emin olun.

Benzer şekilde, örneklerin ölçeklenmesini sınırlamak için bir maksimum sayı ayarlayabilirsiniz: yanıt verebilir. Maliyetlerinizi kontrol etmenin bir yolu olarak bu ayarı kullanın veya bir

Bu ayarları örnek başına eşzamanlılık ayarıyla (2. nesil için yeni) birlikte kullanarak işlevlerinizin ölçeklendirme davranışını kontrol edebilir ve düzenleyebilirsiniz. İlgili içeriği oluşturmak için kullanılan uygulamanızın ve işlevinizin yapısı, en iyi performans gösteren ile en iyi performansı sağlayacak.

Düşük trafiğe sahip bazı uygulamalar için çoklu eşzamanlılığa sahip olmayan daha düşük bir CPU seçeneği en uygunudur. Soğuk başlatmanın kritik bir sorun olduğu bazı işletmeler için, eş zamanlılık ve minimum örnek sayıları, belirli bir örnek grubunun her zaman ani trafik artışlarını karşılamaya hazır olun.

Çok az trafik alan küçük ölçekli uygulamalarda, yüksek eşzamanlılıkla birlikte düşük maksimum örnek sayısı belirlemek, uygulamanın aşırı maliyetlere yol açmadan trafik patlaklarını işleyebileceği anlamına gelir. Ancak maksimum örnek sayısı çok düşük ayarlandığında, tavana ulaşıldığında isteklerin bırakılabileceğini unutmayın.

Eşzamanlı isteklere izin verme

Cloud Functions for Firebase (1. nesil) sürümünde her örnek aynı anda bir isteği işleyebiliyordu. Bu nedenle ölçeklendirme davranışı yalnızca minimum ve maksimum örnek ayarlarıyla belirleniyordu. Cloud Functions for Firebase (2. nesil) sürümünde, örnek sayısını kontrol etmenin yanı sıra concurrency seçeneğiyle her bir örneğin aynı anda yayınlayabileceği istek sayısını da kontrol edebilirsiniz. Eşzamanlılık için varsayılan değer 80'dir ancak bu değeri 1 ile 1000 arasında herhangi bir tam sayıya ayarlayabilirsiniz.

Her örneğin muhtemelen biraz boşluğu olduğu için daha yüksek eşzamanlılık ayarlarına sahip işlevler, soğuk başlatma olmadan trafik artışlarını emebilir. Bir örnek, 50'ye kadar eşzamanlı isteği işleyecek şekilde yapılandırılmışsa ancak şu anda yalnızca 25 isteği işliyorsa yeni bir örneğin soğuk başlatılmasını gerektirmeden 25 ek istek artışıyla baş edebilir. Buna karşılık, yalnızca 1 olan eşzamanlılık ayarıyla isteklerdeki bu artış 25 soğuk başlatmaya neden olabilir.

Bu basitleştirilmiş senaryoda, eşzamanlılığın potansiyel verimlilik kazanımları gösterilmektedir. Gerçekte, verimliliği optimize etmek ve eşzamanlı olarak soğuk başlatmaları azaltmak için davranışı ölçeklendirmek daha karmaşıktır. 2. nesil Cloud Functions for Firebase'te eşzamanlılık, Cloud Run tarafından desteklenir ve Cloud Run'un konteyner örneğini otomatik ölçeklendirme kurallarına uyar.

Cloud Functions for Firebase bölgesinde daha yüksek eşzamanlılık ayarlarıyla denemeler yaparken (2. nesil) aşağıdaki noktaları göz önünde bulundurun:

  • Pratik bir sınıra ulaşana kadar, daha yüksek eşzamanlılık ayarları optimum performans için daha yüksek CPU ve RAM gerektirebilir. Çok fazla işlem yapan video işleme için yeterli kaynak olmayabilir. CPU ve RAM ayarları en üst düzeye çıkarılmış olsa bile 1.000 eşzamanlı istek.
  • Cloud Functions for Firebase (2. nesil) Cloud Run tarafından desteklendiği için şunları yapabilirsiniz: şunun için Google Cloud kılavuzuna da bakabilirsiniz: eşzamanlılığı optimize etme.
  • Üretimde çoklu eşzamanlılığa geçmeden önce çoklu eşzamanlılığı test ortamında ayrıntılı olarak test ettiğinizden emin olun.

Minimum sayıda örneği sıcak tutun

Kaynak kodunda bir işlev için minimum örnek sayısını ayarlayabilirsiniz. Örneğin, bu işlev en az 5 örnek ayarlar sıcak tutmak için:

Node.js

const { onCall } = require("firebase-functions/v2/https");

exports.getAutocompleteResponse = onCall(
  {
    // Keep 5 instances warm for this latency-critical function
    minInstances: 5,
  },
  (event) => {
    // Autocomplete user’s search term
  }
);

Python

@https_fn.on_call(min_instances=5)
def get_autocomplete_response(event: https_fn.CallableRequest) -> https_fn.Response:

Minimum örnek sayısı değerini belirlerken dikkate almanız gereken bazı noktalar şunlardır:

  • Cloud Functions for Firebase, uygulamanızı ayarınızdan daha fazla ölçeklendirirse bu eşiğin üzerindeki her örnek için baştan başlatma işlemi gerçekleşir.
  • Soğuk başlatmalar, trafiği ani artışlar gösteren uygulamalar üzerinde en ciddi etkiye sahiptir. Eğer olduğunu ve uygulamanızın daha hızlı çalışmasını sağlayacak kadar yüksek bir değer her trafik artışında soğuk başlatmaların azalması söz konusu olduğunda, daha az gecikme. Sürekli trafiğe sahip uygulamalarda baştan başlatmanın düşük olması performansını ciddi ölçüde etkileyecektir.
  • Minimum örnek sayısı belirlemek üretim ortamları için mantıklı olabilir ancak genellikle test ortamlarında bundan kaçınılmalıdır. Test projenizde sıfıra ölçeklendirme yapmak ancak üretim projenizde soğuk başlatmaları azaltmak için parametreli yapılandırmanızda minimum örnek sayısı değeri ayarlayabilirsiniz:

    Node.js

    const functions = require('firebase-functions/v1');
    const { defineInt, defineString } = require('firebase-functions/params');
    
    // Define some parameters
    const minInstancesConfig = defineInt('HELLO_WORLD_MININSTANCES');
    const welcomeMessage = defineString('WELCOME_MESSAGE');
    
    // To use configured parameters inside the config for a function, provide them 
    // directly. To use them at runtime, call .value() on them.
    export const helloWorld = functions.runWith({ minInstances: minInstancesConfig}).https.onRequest(
      (req, res) => {
        res.send(`${welcomeMessage.value()}! I am a function.`);
      }
    );
    

    Python

    MIN_INSTANCES = params.IntParam("HELLO_WORLD_MININSTANCES")
    WELCOME_MESSAGE = params.StringParam("WELCOME_MESSAGE")
    
    @https_fn.on_request(min_instances=MIN_INSTANCES.value())
    def get_autocomplete_response(event: https_fn.Request) -> https_fn.Response:
        return https_fn.Response(f"{WELCOME_MESSAGE.value()} I'm a function.")
    

Bir işlev için maksimum örnek sayısını sınırlama

İşlev kaynak kodunda maksimum örnek sayısı için bir değer ayarlayabilirsiniz. Örneğin, bu işlev 100 örnekle sınırlı kalmaması için bir veri tabanında aşırı yüklenmeye yol açabilir:

Node.js

const { onMessagePublished } = require("firebase-functions/v2/pubsub");

exports.mirrorevents = onMessagePublished(
  { topic: "topic-name", maxInstances: 100 },
  (event) => {
    // Connect to legacy database
  }
);

Python

@pubsub_fn.on_message_published(topic="topic-name", max_instances=100)
def mirrorevents(event: pubsub_fn.CloudEvent):
#  Connect to legacy database

Bir HTTP işlevi maksimum örnek sınırına kadar ölçeklendirilirse yeni istekler 30 saniye boyunca sıraya alındı ve ardından şu yanıt koduyla reddedildi: O zamana kadar kullanılabilir örnek yoksa 429 Too Many Requests.

Maksimum örnek sayısı ayarlarını kullanmayla ilgili en iyi uygulamalar hakkında daha fazla bilgi edinmek için maksimum örnek sayısını ayarlamayla ilgili en iyi uygulamalara göz atın.

Zaman aşımı ve bellek ayırmayı ayarlama

Bazı durumlarda, işlevleriniz için uzun bir zaman aşımı değeri veya büyük bir bellek tahsisi gibi özel şartlar olabilir. Bu değerleri Google Cloud konsolunda veya işlev kaynak kodunda (yalnızca Firebase) ayarlayabilirsiniz.

İşlevlerin kaynak kodunda bellek ayırma ve zaman aşımı ayarlamak için işlevlerinizi çalıştıran sanal makineyi özelleştirmek üzere bellek ve zaman aşımı saniyeleri için genel seçenekleri kullanın. Örneğin, bu Cloud Storage işlevi 1 GiB bellek ve zaman kullanır arasında bir boşluk olması gerekir:

Node.js

exports.convertLargeFile = onObjectFinalized({
  timeoutSeconds: 300,
  memory: "1GiB",
}, (event) => {
  // Do some complicated things that take a lot of memory and time
});

Python

@storage_fn.on_object_finalized(timeout_sec=300, memory=options.MemoryOption.GB_1)
def convert_large_file(event: storage_fn.CloudEvent):
# Do some complicated things that take a lot of memory and time.

Zaman aşımı saniyeleri için maksimum değer 540 veya 9 dakikadır.

Google Cloud konsolunda bellek tahsisini ve zaman aşımını ayarlamak için:

  1. Google Cloud konsolunda, sol menüden Cloud Functions for Firebase simgesini seçin.
  2. İşlev listesinde adını tıklayarak bir işlev seçin.
  3. Üst menüdeki Düzenle simgesini tıklayın.
  4. Ayırılan bellek etiketli açılır menüden bir bellek ayırma seçin.
  5. Gelişmiş seçenekleri görüntülemek için Diğer'i tıklayın ve Zaman aşımı metin kutusuna bir saniye sayısı girin.
  6. İşlevi güncellemek için Kaydet'i tıklayın.

CPU varsayılan ayarlarını geçersiz kıl

Her Cloud Functions for Firebase işlevinde (2. nesil) olmak üzere en fazla 2 GB bellek ayrılır varsayılan olarak bir CPU'ya ayarlanır ve daha sonra 4 ve 8 GB için 2 CPU'ya yükseltilir. Lütfen bu, 1. nesil varsayılan davranıştan önemli ölçüde farklıdır. düşük bellekli işlevler için biraz daha yüksek maliyete neden olur. aşağıdaki tabloda bulabilirsiniz:

Ayrılan RAM Sürüm 1 varsayılan CPU (kesirli) 2. sürümün varsayılan CPU'su Ms başına fiyat artışı
128 MB 12/1 1 10,5x
256 MB 1/6 1 5,3 kat
512 MB 3/1 1 2,7 kat
1 GB 12/7 1 1,6x
2 GB 1 1 1 kat
4 GB 2 2 1 kat
8 GB 2 2 1 kat
16 GB Yok 4 Yok

2. nesil işlevleriniz için 1. nesil davranışı tercih ediyorsanız 1. nesil varsayılanlarını genel bir seçenek olarak ayarlayın:

Node.js

// Turn off Firebase defaults
setGlobalOptions({ cpu: 'gcf_gen1' });

Python

# Use 1st gen behavior
set_global_options(cpu="gcf_gen1")

Yoğun CPU kullanan işlevler için 2. nesil, ek CPU yapılandırmaya yönelik esneklik sağlar. CPU'yu işlev bazında artırabilirsiniz.

Node.js

// Boost CPU in a function:
export const analyzeImage = onObjectFinalized({ cpu: 2 }, (event) => {
  // computer vision goes here
});

Python

# Boost CPU in a function:
@storage_fn.on_object_finalized(cpu=2)
def analyze_image(event: storage_fn.CloudEvent):
# computer vision goes here