Cloud Functions ist regional. Das bedeutet, dass sich die Infrastruktur, in der Ihre Funktion ausgeführt wird, in bestimmten Regionen befindet und von Google verwaltet wird, damit sie in allen Zonen innerhalb dieser Regionen redundant verfügbar ist.
Bei der Auswahl der Regionen, in denen Ihre Funktionen ausgeführt werden sollen, Latenz und Verfügbarkeit sollten. Sie können Sie wählen in der Regel Regionen in der Nähe Ihrer Nutzer aus. sollten Sie auch den Standort der andere Produkte und Dienste die Ihre App verwendet. Die regionsübergreifende Nutzung von Diensten kann sich auf die Latenz Ihrer App sowie die Preise.
Standardmäßig werden Funktionen in der Region us-central1
ausgeführt. Beachten Sie, dass dies möglicherweise
von der Region einer Ereignisquelle, z. B. eines Cloud Storage-Buckets, unterscheidet.
Hier erfahren Sie, wie Sie
die Region angeben, in der eine Funktion ausgeführt wird
weiter unten auf dieser Seite.
Unterstützte Regionen
In den Listen in diesem Abschnitt enthält der Parameter energieeinsparungsblatt zeigt an, dass der Strom für diese Region CO2-Emissionen reduzieren. Weitere Informationen finden Sie unter CO2-freie Energie für Google Cloud-Regionen.
Cloud Functions ist in den folgenden Regionen mit Preisstufe 1 verfügbar:
asia-east1
(Taiwan)asia-east2
(Hongkong) Nur 1. Generationasia-northeast1
(Tokio)asia-northeast2
(Osaka)europe-north1
(Finnland) energieeinsparungsblatt Nur 2. Generationeurope-west1
(Belgien) energieeinsparungsblatteurope-west2
(London) Nur 1. Generationus-central1
(Iowa) energieeinsparungsblattus-east1
(South Carolina)us-east4
(Northern Virginia)us-west1
(Oregon) energieeinsparungsblatt
Cloud Functions ist in den folgenden Regionen mit Preisstufe 2:
asia-east2
(Hongkong) Nur 2. Generationasia-northeast3
(Seoul)asia-southeast1
(Singapur)asia-southeast2
(Jakarta)asia-south1
(Mumbai), nur 2. Generationaustralia-southeast1
(Sydney)australia-southeast2
(Melbourne) Nur 2. Generationeurope-central2
(Warschau)europe-west2
(London) Nur 2. Generationeurope-west3
(Frankfurt)europe-west6
(Zürich) energieeinsparungsblattnorthamerica-northeast1
(Montreal) energieeinsparungsblattnorthamerica-northeast2
(Toronto) energy_savings_leaf Nur 2. Generationsouthamerica-east1
(São Paulo) energieeinsparungsblattsouthamerica-west1
(Santiago, Chile) nur 2. Generationus-west2
(Los Angeles)us-west3
(Salt Lake City)us-west4
(Las Vegas)
Funktionen innerhalb einer Region und eines Projekts müssen eindeutige Namen haben (Groß- und Kleinschreibung ist irrelevant). Funktionen in verschiedenen Regionen oder Projekten können denselben Namen haben.
Best Practices zum Angeben einer Region
Standardmäßig werden Funktionen in der Region us-central1
ausgeführt. Beachten Sie, dass dies möglicherweise
von der Region einer Ereignisquelle, z. B. eines Cloud Storage-Buckets, unterscheidet. Wenn
die Region angeben, in der eine Funktion ausgeführt wird,
Empfehlungen in diesem Abschnitt für jeden Funktionstrigger-Typ.
Um die Region festzulegen, in der eine Funktion ausgeführt wird, geben Sie den Parameter region
in der
Funktionsdefinition wie hier gezeigt:
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
Sie können mehrere Regionen angeben, indem Sie mehrere durch Kommas getrennte Regionen übergeben.
Strings in region
. Wenn Sie eine Region für viele
Hintergrund-Triggertypen verwenden, müssen Sie den richtigen Ereignisfilter
zusammen mit der Region. Im obigen Beispiel ist das Cloud Firestore document
, das das Ereignis auslöst. Für einen Cloud Storage-Trigger den Ereignisfilter auslösen
könnte bucket
sein; für einen Pub/Sub-Trigger topic
und so weiter.
Weitere Informationen finden Sie unter Region einer Funktion ändern finden Sie weitere Informationen zum Ändern der Region für eine Funktion, die des Produktionstraffics.
HTTP- und client-aufrufbare Funktionen
Für HTTP- und aufrufbare Funktionen empfehlen wir, dass Sie Ihre Funktion zunächst auf den Zielregion oder der nächstgelegenen Region, in der sich die am häufigsten zu erwartenden Kunden befinden, und Ändern Sie dann die ursprüngliche Funktion so ab, dass deren HTTP-Anfrage an die neue -Funktion (sie können denselben Namen haben). Wenn Clients, die Ihre HTTP-Funktion verwenden, Weiterleitungen unterstützen, können Sie einfach die ursprüngliche Funktion so ändern, dass der HTTP-Statuscode zur Weiterleitung (301) zusammen mit der URL der neuen Funktion zurückgegeben wird. Wenn die Clients eher schlecht mit Weiterleitungen zurechtkommen, können Sie die Anfrage von der ursprünglichen auf die neue Funktion weiterleiten. Starten Sie dazu von der ursprünglichen Funktion aus eine neue Anfrage an die neue Funktion. Der letzte Schritt besteht darin sicherzustellen, dass alle Kunden und rufen die neue Funktion auf.
Clientseitige Standortauswahl für aufrufbare Funktionen
In Bezug auf die aufrufbare Funktion sollten clientseitig aufrufbare Konfigurationen
Richtlinien als HTTP-Funktionen. Der Client kann auch eine Region angeben und muss dies tun, wenn die Funktion in einer anderen Region als us-central1
ausgeführt wird.
Zum Einstellen Regionen auf dem Client, geben Sie die gewünschte Region bei der Initialisierung an:
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");
Einheit
firebase.Functions.FirebaseFunctions functions;
functions = Firebase.Functions.FirebaseFunctions.GetInstance("europe-west1");
Hintergrundfunktionen
Hintergrundfunktionen nutzen eine Semantik für die mindestens einmalige Zustellung von Ereignissen. dass sie unter bestimmten Umständen doppelte Ereignisse erhalten. Sie sollten sich also Funktionen zu implementieren, idempotent ist. Wenn Ihre Funktion bereits idempotent ist, können Sie die Funktion in der neuen Region mit Ereignis-Trigger zu erstellen und die alte Funktion zu entfernen, nachdem Sie überprüft haben, die neue Funktion Traffic korrekt empfängt. Während dieser Übergangsphase -Funktionen Ereignisse empfangen. Weitere Informationen finden Sie unter Region einer Funktion ändern finden Sie die empfohlene Reihenfolge von Befehlen zum Ändern von Regionen für Funktionen.
Wenn Ihre Funktion nicht idempotent ist oder die Idempotenz nicht über die Region hinausreicht, empfehlen wir, zuerst die Idempotenz zu implementieren, bevor Sie die Funktion verschieben.
Die Empfehlungen für optimale Regionen unterscheiden sich je nach Ereignistriggertyp:
Triggertyp | Empfehlung für Region |
---|---|
Cloud Firestore | Die Region, die dem Standort der Cloud Firestore-Instanz am nächsten ist (siehe nächster Abschnitt) |
Realtime Database | Immer us-central1 |
Cloud Storage | Nächste Region zum Bucket-Standort Cloud Storage (siehe nächster Abschnitt) |
Sonstige | Wenn Sie mit einer Realtime Database-Instanz interagieren, wird ein Cloud Firestore
oder einen Cloud Storage-Bucket innerhalb der Funktion haben,
ist dasselbe wie bei einer Funktion, die durch eine dieser
Ressourcen. Andernfalls verwenden Sie die Standardregion us-central1 .
Funktionen, die mit Firebase Hosting verbunden sind, können sich in jeder Region befinden. Empfehlungen finden Sie in der Übersicht über das serverlose Hosting. |
Regionen basierend auf Cloud Firestore- und Cloud Storage-Standorten auswählen
Die verfügbaren Regionen für Funktionen stimmen nicht immer genau mit dem Verfügbare Regionen für Ihre Cloud Firestore-Datenbank und Ihre Cloud Storage Buckets.
Wenn Ihre Funktion und Ihre Ressource (Datenbankinstanz oder Cloud Storage) Bucket) befinden sich an verschiedenen Orten, kann es passieren, erhöhte Latenz und Abrechnungskosten.
Hier ist eine Zuordnung der Regionen, in denen von Funktionen unterstützte Regionen für Cloud Firestore am nächsten kommen und Cloud Storage, wenn dieselbe Region nicht unterstützt wird:
Region/Mehrfachregion für Cloud Firestore und Cloud Storage | Nächste Region für Funktionen |
---|---|
nam5 oder us-central (mehrere Regionen) |
us-central1 |
eur3 oder europe-west (mehrere Regionen) |
europe-west1 |
europe-west4 (Niederlande) |
europe-west1 |
asia-south1 (Mumbai) |
asia-east2 |
asia-south2 (Delhi) |
asia-east2 |
australia-southeast2 (Melbourne) |
australia-southeast1 |