Sie können Funktionen mithilfe von Firebase-Befehlen bereitstellen, löschen und ändern oder Laufzeitoptionen im Quellcode der Funktionen festlegen.
Funktionen bereitstellen
Führen Sie den folgenden Firebase-Befehl aus, um Funktionen bereitzustellen:
firebase deploy --only functions
Standardmäßig werden mit der Firebase CLI alle Funktionen in Ihrer Quelle gleichzeitig bereitgestellt. Wenn Ihr Projekt mehr als fünf Funktionen enthält, empfehlen wir, das Flag --only
mit bestimmten Funktionsnamen zu verwenden, um nur die Funktionen bereitzustellen, die Sie bearbeitet haben. Wenn Sie bestimmte Funktionen auf diese Weise bereitstellen, wird der Bereitstellungsprozess beschleunigt und Sie vermeiden Bereitstellungskontingente. Beispiel:
firebase deploy --only functions:addMessage,functions:makeUppercase
Wenn Sie eine große Anzahl von Funktionen bereitstellen, kann das Standardkontingent überschritten werden und Sie erhalten HTTP-Fehlermeldungen 429 oder 500. Um dieses Problem zu beheben, sollten Sie Funktionen in Gruppen von maximal zehn Funktionen bereitstellen.
Eine vollständige Liste der verfügbaren Befehle finden Sie in der Firebase-Referenz.
Standardmäßig sucht die Firebase-Befehlszeile im Ordner functions/
nach dem Quellcode. Alternativ können Sie Funktionen in Codebases oder mehreren Dateien organisieren.
Funktionen löschen
Sie haben folgende Möglichkeiten, zuvor bereitgestellte Funktionen zu löschen:
- explizit in der Firebase CLI mit
functions:delete
- explizit in der Google Cloud-Konsole.
- implizit, indem Sie die Funktion vor der Bereitstellung aus der Quelle entfernen.
Bei allen Löschvorgängen werden Sie aufgefordert, die Funktion aus der Produktion zu entfernen.
Das explizite Löschen von Funktionen in der Firebase-Befehlszeile unterstützt mehrere Argumente sowie Funktionsgruppen und ermöglicht die Angabe einer Funktion, die in einer bestimmten Region ausgeführt wird. Sie können die Bestätigungsaufforderung auch überschreiben.
# 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
Bei der impliziten Funktionslöschung analysiert firebase deploy
Ihre Quelle und entfernt alle Funktionen aus der Produktion, die aus der Datei entfernt wurden.
Name, Region oder Trigger einer Funktion ändern
Wenn Sie die Regionen oder den Trigger für Funktionen umbenennen oder ändern, die Produktionstraffic verarbeiten, folgen Sie der Anleitung in diesem Abschnitt, um zu verhindern, dass bei der Änderung Ereignisse verloren gehen. Bevor Sie diese Schritte ausführen, prüfen Sie, ob Ihre Funktion idempotent ist, da während der Umstellung sowohl die neue als auch die alte Version Ihrer Funktion gleichzeitig ausgeführt werden.
Funktion umbenennen
Wenn Sie eine Funktion umbenennen möchten, erstellen Sie in der Quelle eine neue umbenannte Version der Funktion und führen Sie dann zwei separate Bereitstellungsbefehle aus. Mit dem ersten Befehl wird die neu benannte Funktion bereitgestellt und mit dem zweiten Befehl wird die zuvor bereitgestellte Version entfernt. Wenn Sie beispielsweise einen HTTP-ausgelösten Webhook umbenennen möchten, ändern Sie den Code so:
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!")
Führen Sie dann die folgenden Befehle aus, um die neue Funktion bereitzustellen:
# Deploy new function firebase deploy --only functions:webhookNew # Wait until deployment is done; now both functions are running # Delete webhook firebase functions:delete webhook
Region oder Regionen einer Funktion ändern
Wenn Sie die angegebenen Regionen für eine Funktion ändern, die Produktionstraffic verarbeitet, können Sie Datenverluste verhindern, indem Sie die folgenden Schritte nacheinander ausführen:
- Benennen Sie die Funktion um und ändern Sie die Region oder Regionen nach Bedarf.
- Die umbenannte Funktion wird bereitgestellt, wodurch derselbe Code vorübergehend in beiden Regionen ausgeführt wird.
- Löschen Sie die vorherige Funktion.
Wenn Sie beispielsweise eine von Cloud Firestore ausgelöste Funktion haben, die sich derzeit in der Standardfunktionsregion us-central1
befindet, und sie zu asia-northeast1
migrieren möchten, müssen Sie zuerst Ihren Quellcode ändern, um die Funktion umzubenennen und die Region zu überarbeiten.
Node.js
// before
exports.firestoreTrigger = onDocumentCreated(
"my-collection/{docId}",
(event) => {},
);
// after
exports.firestoreTriggerAsia = onDocumentCreated(
{
document: "my-collection/{docId}",
region: "asia-northeast1",
},
(event) => {},
);
Der aktualisierte Code sollte den richtigen Ereignisfilter (in diesem Fall document
) zusammen mit der Region angeben. Weitere Informationen finden Sie unter Cloud Functions-Standorte.
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
Führen Sie dann diesen Befehl aus, um die Bereitstellung vorzunehmen:
firebase deploy --only functions:firestoreTriggerAsia
Jetzt werden zwei identische Funktionen ausgeführt: firestoreTrigger
in us-central1
und firestoreTriggerAsia
in asia-northeast1
.
Löschen Sie dann firestoreTrigger
:
firebase functions:delete firestoreTrigger
Jetzt gibt es nur noch eine Funktion: firestoreTriggerAsia
, die in asia-northeast1
ausgeführt wird.
Triggertyp einer Funktion ändern
Wenn Sie Ihre Cloud Functions for Firebase-Bereitstellung im Laufe der Zeit weiterentwickeln, müssen Sie den Triggertyp einer Funktion möglicherweise aus verschiedenen Gründen ändern. Beispielsweise können Sie von einem Firebase Realtime Database- oder Cloud Firestore-Ereignistyp zu einem anderen wechseln.
Der Ereignistyp einer Funktion kann nicht einfach durch Ändern des Quellcodes und Ausführen von firebase deploy
geändert werden. So ändern Sie den Triggertyp einer Funktion, um Fehler zu vermeiden:
- Ändern Sie den Quellcode so, dass er eine neue Funktion mit dem gewünschten Triggertyp enthält.
- Binden Sie die Funktion ein. Dadurch werden vorübergehend sowohl die alte als auch die neue Funktion ausgeführt.
- Löschen Sie die alte Funktion mit der Firebase-Befehlszeile explizit aus der Produktion.
Wenn Sie beispielsweise eine Funktion hatten, die ausgelöst wurde, wenn ein Objekt gelöscht wurde, Sie dann aber die Objektversionsverwaltung aktiviert haben und stattdessen das Archivierungsereignis abonnieren möchten, müssen Sie zuerst die Funktion umbenennen und sie so bearbeiten, dass sie den neuen Triggertyp hat.
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):
# ...
Führen Sie dann die folgenden Befehle aus, um zuerst die neue Funktion zu erstellen, bevor Sie die alte Funktion löschen:
# 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
Laufzeitoptionen festlegen
Mit Cloud Functions for Firebase können Sie Laufzeitoptionen wie die Node.js-Laufzeitversion und das Zeitlimit pro Funktion, die Speicherzuweisung und die Mindest-/Maximalzahl der Funktionsinstanzen auswählen.
Als Best Practice sollten diese Optionen (mit Ausnahme der Node.js-Version) in einem Konfigurationsobjekt im Funktionscode festgelegt werden. Dieses RuntimeOptions
-Objekt ist die maßgebliche Quelle für die Laufzeitoptionen Ihrer Funktion und überschreibt Optionen, die über eine andere Methode festgelegt wurden, z. B. über die Google Cloud Console oder die gcloud CLI.
Wenn Sie in Ihrem Entwicklungsablauf die Laufzeitoptionen manuell über die Google Cloud Console oder die gcloud-Befehlszeile festlegen und diese Werte nicht bei jedem Deployment überschrieben werden sollen, legen Sie die Option preserveExternalChanges
auf true
fest.
Wenn diese Option auf true
festgelegt ist, werden die in Ihrem Code festgelegten Laufzeitoptionen von Firebase mit den Einstellungen der aktuell bereitgestellten Version Ihrer Funktion mit der folgenden Priorität zusammengeführt:
- Option im Funktionscode festgelegt: Externe Änderungen überschreiben
- Die Option ist im Funktionscode auf
RESET_VALUE
festgelegt: Externe Änderungen werden durch den Standardwert überschrieben. - Die Option ist nicht im Code der Funktionen festgelegt, sondern in der aktuell bereitgestellten Funktion. Verwenden Sie die in der bereitgestellten Funktion angegebene Option.
Die Verwendung der Option preserveExternalChanges: true
wird für die meisten Szenarien nicht empfohlen, da Ihr Code dann nicht mehr die vollständige Quelle der Wahrheit für die Laufzeitoptionen Ihrer Funktionen ist. Wenn Sie sie verwenden, können Sie die vollständige Konfiguration einer Funktion in der Google Cloud Console oder mit der gcloud CLI aufrufen.
Node.js-Version festlegen
Das Firebase SDK für Cloud Functions ermöglicht die Auswahl einer Node.js-Laufzeit. Sie können festlegen, dass alle Funktionen in einem Projekt ausschließlich in der Laufzeitumgebung ausgeführt werden, die einer der folgenden unterstützten Node.js-Versionen entspricht:
- Node.js 22 (Vorabversion)
- Node.js 20
- Node.js 18
Node.js-Versionen 14 und 16 sind veraltet und werden Anfang 2025 eingestellt. Die Bereitstellung mit diesen veralteten Versionen ist deaktiviert.
So legen Sie die Node.js-Version fest:
Sie können die Version im Feld engines
der Datei package.json
festlegen, die während der Initialisierung im Verzeichnis functions/
erstellt wurde.
Wenn Sie beispielsweise nur Version 18 verwenden möchten, bearbeiten Sie diese Zeile in package.json
:
"engines": {"node": "20"}
Wenn Sie den Yarn-Paketmanager verwenden oder andere spezifische Anforderungen an das Feld engines
haben, können Sie die Laufzeit für das Firebase SDK für Cloud Functions stattdessen in firebase.json
festlegen:
{
"functions": {
"runtime": "nodejs18" // or nodejs20
}
}
In der Befehlszeile wird der in firebase.json
festgelegte Wert anstelle eines Werts oder Bereichs verwendet, den Sie separat in package.json
festgelegt haben.
Node.js-Laufzeit aktualisieren
So führen Sie ein Upgrade der Node.js-Laufzeit durch:
- Ihr Projekt muss den Blaze-Tarif haben.
- Sie benötigen die Firebase CLI-Version 11.18.0 oder höher.
- Ändern Sie den Wert
engines
in der Dateipackage.json
, die während der Initialisierung im Verzeichnisfunctions/
erstellt wurde. Wenn Sie beispielsweise von Version 18 auf Version 20 umstellen, sollte der Eintrag so aussehen:"engines": {"node": "20"}
- Optional können Sie Ihre Änderungen mit Firebase Local Emulator Suite testen.
- Stellen Sie alle Funktionen neu bereit.
Python-Version festlegen
Mit dem Firebase SDK für Cloud Functions Version 12.0.0 und höher können Sie die Python-Laufzeit auswählen. Legen Sie die Laufzeitversion in firebase.json
wie unten gezeigt fest:
{
"functions": {
"runtime": "python310" // or python311
}
}
Skalierungsverhalten steuern
Standardmäßig skaliert Cloud Functions for Firebase die Anzahl der laufenden Instanzen basierend auf der Anzahl der eingehenden Anfragen. Bei geringem Traffic kann die Anzahl der Instanzen auf null gesenkt werden. Wenn Ihre App jedoch eine geringere Latenz erfordert und Sie die Anzahl von Kaltstarts begrenzen möchten, können Sie dieses Standardverhalten ändern. Dazu geben Sie eine Mindestanzahl von Containerinstanzen an, die einsatzbereit sind und Anfragen bedienen können.
Ebenso können Sie eine maximale Anzahl festlegen, um die Skalierung von Instanzen als Reaktion auf eingehende Anfragen zu begrenzen. Verwenden Sie diese Einstellung, um Ihre Kosten zu kontrollieren oder die Anzahl der Verbindungen zu einem Sicherungsdienst zu begrenzen, z. B. zu einer Datenbank.
Mit diesen Einstellungen und der Gleichzeitigkeit pro Instanz (neu in der 2. Generation) können Sie das Skalierungsverhalten Ihrer Funktionen steuern und optimieren. Die Art Ihrer Anwendung und Funktion bestimmt, welche Einstellungen am kostengünstigsten sind und die beste Leistung erzielen.
Für einige Apps mit geringem Traffic ist eine niedrigere CPU-Option ohne Mehrfachausführung optimal. Bei anderen Anwendungen, bei denen Kaltstarts ein kritisches Problem darstellen, bedeutet eine hohe Gleichzeitigkeit und eine Mindestanzahl von Instanzen, dass eine Reihe von Instanzen immer warm gehalten wird, um große Trafficspitzen zu bewältigen.
Bei kleineren Apps, die nur sehr wenig Traffic erhalten, können Sie eine niedrige maximale Anzahl von Instanzen mit hoher Gleichzeitigkeit festlegen, damit die App Verkehrsspitzen bewältigen kann, ohne dass unnötige Kosten anfallen. Wenn Sie die maximale Anzahl von Instanzen jedoch zu niedrig festlegen, werden Anfragen möglicherweise abgelehnt, wenn die Obergrenze erreicht ist.
Gleichzeitige Anfragen zulassen
In Cloud Functions for Firebase (1. Generation) konnte jede Instanz jeweils nur eine Anfrage verarbeiten. Das Skalierungsverhalten wurde daher nur mit den Einstellungen für die Mindest- und die maximale Anzahl von Instanzen festgelegt.
In Cloud Functions for Firebase (2. Generation) können Sie nicht nur die Anzahl der Instanzen steuern, sondern auch mit der Option concurrency
die Anzahl der Anfragen, die jede Instanz gleichzeitig bedienen kann. Der Standardwert für die Nebenläufigkeit ist 80. Sie können ihn jedoch auf eine beliebige ganze Zahl zwischen 1 und 1.000 festlegen.
Funktionen mit höheren Einstellungen für die Parallelität können Verkehrsspitzen ohne Kaltstart absorbieren, da jede Instanz wahrscheinlich einen gewissen Spielraum hat. Wenn eine Instanz so konfiguriert ist, dass sie bis zu 50 gleichzeitige Anfragen verarbeiten kann, derzeit aber nur 25 bearbeitet, kann sie einen Anstieg von 25 zusätzlichen Anfragen verarbeiten, ohne dass eine neue Instanz gestartet werden muss. Bei einer Parallelitätseinstellung von nur 1 könnte dieser Anstieg der Anfragen zu 25 Kaltstarts führen.
Dieses vereinfachte Szenario veranschaulicht die potenziellen Effizienzgewinne durch Parallelität. In der Praxis ist das Skalierungsverhalten zur Optimierung der Effizienz und zur Reduzierung von Kaltstarts bei Gleichzeitigkeit komplexer. Die Parallelität in Cloud Functions for Firebase der 2. Generation wird von Cloud Run unterstützt und folgt den Regeln für das Autoscaling von Containerinstanzen von Cloud Run.
Beachten Sie beim Testen höherer Einstellungen für die Parallelverarbeitung in Cloud Functions for Firebase (2. Generation) Folgendes:
- Höhere Einstellungen für die Parallelität erfordern möglicherweise eine höhere CPU- und RAM-Auslastung, um eine optimale Leistung zu erzielen, bis ein praktisches Limit erreicht wird. Eine Funktion, die eine intensive Bild- oder Videoverarbeitung erfordert, hat möglicherweise nicht genügend Ressourcen, um 1.000 gleichzeitige Anfragen zu verarbeiten, selbst wenn die CPU- und RAM-Einstellungen maximiert sind.
- Da Cloud Functions for Firebase (2. Generation) auf Cloud Run basiert, können Sie sich auch die Google Cloud-Anleitung zur Optimierung der Parallelität ansehen.
- Testen Sie die Mehrfachausführung gründlich in einer Testumgebung, bevor Sie in der Produktion darauf umstellen.
Mindestanzahl von Instanzen in Bereitschaft halten
Sie können die Mindestanzahl von Instanzen für eine Funktion im Quellcode festlegen. Mit dieser Funktion wird beispielsweise ein Minimum von 5 Instanzen festgelegt, die warm gehalten werden sollen:
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:
Beachten Sie beim Festlegen eines Mindestwerts für Instanzen Folgendes:
- Wenn Cloud Functions for Firebase Ihre App über Ihre Einstellung skaliert, kommt es bei jeder Instanz über diesem Grenzwert zu einem Kaltstart.
- Kaltstarts wirken sich am stärksten auf Apps mit Spitzen bei der Zugriffszahl aus. Wenn Ihre App hohe Zugriffsspitzen aufweist und Sie einen Wert festlegen, der hoch genug ist, um bei jeder Zugriffssteigerung die Anzahl der Kaltstarts zu reduzieren, wird die Latenz deutlich gesenkt. Bei Apps mit konstantem Traffic wirken sich Kaltstarts wahrscheinlich nicht stark auf die Leistung aus.
Die Festlegung einer Mindestanzahl von Instanzen kann für Produktionsumgebungen sinnvoll sein, sollte aber in Testumgebungen in der Regel vermieden werden. Wenn Sie in Ihrem Testprojekt auf null skalieren, aber trotzdem Kaltstarts in Ihrem Produktionsprojekt reduzieren möchten, können Sie in Ihrer parametrisierten Konfiguration einen Mindestwert für Instanzen festlegen:
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.")
Maximale Anzahl von Instanzen für eine Funktion begrenzen
Sie können einen Wert für die maximale Anzahl von Instanzen im Funktions-Quellcode festlegen. Mit dieser Funktion wird beispielsweise ein Limit von 100 Instanzen festgelegt, um eine hypothetische Legacy-Datenbank nicht zu überlasten:
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
Wenn eine HTTP-Funktion auf die maximale Anzahl von Instanzen skaliert wird, werden neue Anfragen 30 Sekunden lang in die Warteschlange gestellt und dann mit dem Antwortcode 429 Too Many Requests
abgelehnt, wenn bis dahin keine Instanz verfügbar ist.
Weitere Informationen zu Best Practices für die Verwendung von Einstellungen für die maximale Anzahl von Instanzen finden Sie unter Best Practices für die Einstellung der maximalen Anzahl von Instanzen.
Zeitüberschreitung und Speicherzuweisung festlegen
In einigen Fällen haben Ihre Funktionen möglicherweise spezielle Anforderungen an einen langen Zeitüberschreitungswert oder eine große Speicherzuweisung. Sie können diese Werte entweder in der Google Cloud-Konsole oder im Quellcode der Funktion festlegen (nur Firebase).
Wenn Sie die Speicherzuweisung und das Zeitlimit im Quellcode von Funktionen festlegen möchten, verwenden Sie die globalen Optionen für Speicher und Zeitüberschreitung in Sekunden, um die virtuelle Maschine anzupassen, auf der Ihre Funktionen ausgeführt werden. Diese Cloud Storage-Funktion belegt beispielsweise 1 GiB Arbeitsspeicher und löst nach 300 Sekunden einen Zeitüberschreitungsfehler aus:
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.
Der maximale Wert für die Zeitüberschreitung in Sekunden ist 540
, also 9 Minuten.
So legen Sie die Speicherzuweisung und das Zeitlimit in der Google Cloud-Konsole fest:
- Wählen Sie in der Google Cloud-Konsole im Menü auf der linken Seite Cloud Functions for Firebase aus.
- Wählen Sie eine Funktion aus, indem Sie in der Funktionsliste auf ihren Namen klicken.
- Klicken Sie oben im Menü auf das Symbol Bearbeiten.
- Wählen Sie im Drop-down-Menü Zugewiesener Speicher eine Speicherzuweisung aus.
- Klicken Sie auf das Dreipunkt-Menü, um die erweiterten Optionen aufzurufen, und geben Sie im Textfeld Zeitüberschreitung eine Anzahl von Sekunden ein.
- Klicken Sie auf Speichern, um die Funktion zu aktualisieren.
CPU-Standardeinstellungen überschreiben
Bei bis zu 2 GB zugewiesenem Arbeitsspeicher wird jeder Funktion in Cloud Functions for Firebase (2. Generation) standardmäßig eine CPU zugewiesen. Bei 4 und 8 GB erhöht sich die Anzahl auf zwei CPUs. Das unterscheidet sich deutlich vom Standardverhalten der 1. Generation und kann zu etwas höheren Kosten für Funktionen mit geringem Arbeitsspeicherbedarf führen, wie in der folgenden Tabelle dargestellt:
Zugewiesener RAM | Standard-CPU für Version 1 (anteilig) | Standard-CPU für Version 2 | Preiserhöhung pro ms |
---|---|---|---|
128 MB | 1/12 | 1 | 10,5-fach |
256 MB | 1/6 | 1 | 5,3x |
512 MB | 1/3 | 1 | 2,7-mal |
1 GB | 7/12 | 1 | 1,6-fach |
2 GB | 1 | 1 | 1x |
4 GB | 2 | 2 | 1x |
8 GB | 2 | 2 | 1x |
16 GB | – | 4 | – |
Wenn Sie das Verhalten der 1. Generation für Ihre Funktionen der 2. Generation bevorzugen, legen Sie die Standardeinstellungen der 1. Generation als globale Option fest:
Node.js
// Turn off Firebase defaults
setGlobalOptions({ cpu: 'gcf_gen1' });
Python
# Use 1st gen behavior
set_global_options(cpu="gcf_gen1")
Bei CPU-intensiven Funktionen können Sie mit der 2. Generation flexibel eine zusätzliche CPU konfigurieren. Sie können die CPU für einzelne Funktionen beschleunigen, wie hier dargestellt:
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