Google is committed to advancing racial equity for Black communities. See how.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Standorte der Cloud-Funktionen

Cloud-Funktionen sind regional , dh die Infrastruktur, in der Ihre Cloud-Funktion ausgeführt wird, befindet sich in bestimmten Regionen und wird von Google so verwaltet, dass sie in allen Zonen dieser Regionen redundant verfügbar ist.

Bei der Auswahl der Regionen, in denen Ihre Funktionen ausgeführt werden sollen, sollten Latenz und Verfügbarkeit im Vordergrund stehen. Sie können im Allgemeinen Regionen in der Nähe Ihrer Benutzer auswählen. Sie sollten jedoch auch den Standort der anderen Produkte und Dienstleistungen berücksichtigen, die Ihre App verwendet. Die Verwendung von Diensten in mehreren Regionen kann sich auf die Latenz Ihrer App sowie auf die Preisgestaltung auswirken.

Cloud-Funktionen sind in den folgenden Regionen mit Tier 1-Preisen verfügbar:

  • us-central1 (Iowa)
  • us-east1 (South Carolina)
  • us-east4 (Nord-Virginia)
  • europe-west1 ( europe-west1 )
  • europe-west2 (London)
  • asia-east2 (Hongkong)
  • asia-northeast1 (Tokio)
  • asia-northeast2 (Osaka)

Cloud-Funktionen sind in den folgenden Regionen mit Tier 2-Preisen verfügbar:

  • us-west2 (Los Angeles)
  • us-west3 (Salt Lake City)
  • us-west4 (Las Vegas)
  • europe-west3 (Frankfurt)
  • europe-west6 (Zürich)
  • northamerica-northeast1 (Montreal)
  • southamerica-east1 (Sao Paulo)
  • australia-southeast1 (Sydney)
  • asia-south1 (Mumbai)
  • asia-southeast2 (Jakarta)
  • asia-northeast3 (Seoul)

Funktionen in einer bestimmten Region in einem bestimmten Projekt müssen eindeutige Namen haben, bei denen die Groß- und Kleinschreibung nicht berücksichtigt wird. Funktionen in verschiedenen Regionen oder Projekten können jedoch denselben Namen haben.

Best Practices für den Regionalwechsel

Standardmäßig werden Funktionen in der Region us-central1 . Beachten Sie, dass dies von der Region einer Ereignisquelle abweichen kann, z. B. einem Speicher-Bucket. Wenn Sie den Bereich ändern müssen, in dem eine Funktion ausgeführt wird, befolgen Sie die Empfehlungen in diesem Abschnitt für jeden Funktionsauslösertyp.

Um die region festzulegen, in der eine Funktion ausgeführt wird, legen Sie den Regionsparameter in der Funktionsdefinition wie folgt fest:

exports.myStorageFunction = functions
    .region('europe-west1')
    .storage
    .object()
    .onFinalize((object) => {
      // ...
    });

Sie können mehrere Regionen angeben, indem Sie in functions.region() mehrere durch Kommas getrennte Regionszeichenfolgen übergeben. Weitere Informationen zu empfohlenen Verfahren finden Sie unter Ändern des Bereichs einer Funktion .

HTTP- und Client-aufrufbare Funktionen

Für HTTP- und aufrufbare Funktionen empfehlen wir, dass Sie Ihre Funktion zuerst auf die Zielregion oder am nächsten an dem Ort einstellen, an dem sich die meisten erwarteten Kunden befinden, und dann Ihre ursprüngliche Funktion ändern, um die HTTP-Anforderung an die neue Funktion umzuleiten (diese kann dieselbe haben) Name). Wenn Clients Ihrer HTTP-Funktion Weiterleitungen unterstützen, können Sie einfach Ihre ursprüngliche Funktion ändern, um einen HTTP-Umleitungsstatus (301) zusammen mit der URL Ihrer neuen Funktion zurückzugeben. Wenn Sie Ihre Kunden behandeln Umleitungen nicht gut, können Sie Proxy die Anfrage von der ursprünglichen Funktion der neuen Funktion durch eine neue Anforderung von der ursprünglichen Funktion der neuen Funktion zu initiieren. Der letzte Schritt besteht darin, sicherzustellen, dass alle Clients die neue Funktion aufrufen.

Client-seitige Standortauswahl für aufrufbare Funktionen

In Bezug auf die aufrufbare Funktion sollten aufrufbare Client-Setups den gleichen Richtlinien wie HTTP-Funktionen folgen. Der Client kann auch eine Region angeben und muss dies tun, wenn die Funktion in einer anderen Region als us-central1 .

Geben Sie bei der Initialisierung die gewünschte Region an, um Regionen auf dem Client festzulegen:

Schnell

lazy var functions = Functions.functions(region:"us-central1")

Ziel c

@property(strong, nonatomic) FIRFunctions *functions;
// ...
self.functions = [FIRFunctions functionsWithRegion:@"us-central1"];

Netz


var functions = firebase.app().functions('us-central1');

Android

private FirebaseFunctions mFunctions;
// ...
mFunctions = FirebaseFunctions.getInstance("us-central1");

C ++

firebase::functions::Functions* functions;
// ...
functions = firebase::functions::Functions::GetInstance("us-central1");

Einheit

firebase.Functions.FirebaseFunctions functions;

functions = Firebase.Functions.FirebaseFunctions.GetInstance("us-central1");

Hintergrundfunktionen

Hintergrundfunktionen verwenden eine mindestens einmalige Ereignisübermittlungssemantik, was bedeutet, dass sie unter bestimmten Umständen doppelte Ereignisse empfangen können. Sie sollten also Funktionen implementieren, die idempotent sind . Wenn Ihre Funktion bereits idempotent ist, können Sie die Funktion in der neuen Region mit demselben Ereignisauslöser erneut bereitstellen und die alte Funktion entfernen, nachdem Sie überprüft haben, ob die neue Funktion den Datenverkehr korrekt empfängt. Während dieses Übergangs erhalten beide Funktionen Ereignisse. Siehe eine Funktion Region ändern für die empfohlene Reihenfolge der Befehle Regionen für Funktionen zu ändern.

Wenn Ihre Funktion derzeit nicht idempotent ist oder ihre Idempotenz nicht über die Region hinausgeht, empfehlen wir, dass Sie zuerst die Idempotenz implementieren, bevor Sie die Funktion verschieben.

Die Empfehlungen für optimale Regionen unterscheiden sich je nach Ereignisauslösertyp:

Auslösertyp Region Empfehlung
Cloud Firestore Die nächstgelegene Region zum Speicherort der Cloud Firestore-Instanz (siehe nächster Abschnitt)
Echtzeitdatenbank Immer us-central1
Lager Am nächsten zum Speicherbereich (siehe nächster Abschnitt)
Andere Wenn Sie mit einer Echtzeitdatenbankinstanz, einer Cloud Firestore-Instanz oder einem Storage Bucket innerhalb der Funktion interagieren, ist der empfohlene Bereich derselbe, als ob Sie eine Funktion von einer dieser Ressourcen ausgelöst hätten. Verwenden Sie andernfalls die Standardregion von us-central1 . Beachten Sie auch, dass sich Funktionen, die mit Firebase Hosting verbunden sind, in us-central1 .

Auswählen von Regionen basierend auf Cloud Firestore- und Speicherorten

Die verfügbaren Regionen für Funktionen stimmen nicht immer genau mit den Regionen überein, die für Ihre Cloud Firestore-Datenbank und Ihre Cloud Storage-Buckets verfügbar sind.

Beachten Sie, dass sich Ihre Latenz und Abrechnungskosten möglicherweise erhöhen, wenn sich Ihre Funktion und Ihre Ressource (Datenbankinstanz oder Speicherbereich) an unterschiedlichen Speicherorten befinden.

Im Folgenden finden Sie eine Zuordnung der am nächsten von Funktionen unterstützten Regionen für Cloud Firestore und Cloud Storage für Fälle, in denen dieselbe Region nicht unterstützt wird:

Region / Multi-Region für Cloud Firestore und Speicher Nächste Region für Funktionen
nam5 oder us-central (Multi-Region) us-central1
eur3 oder europe-west (multi-region) europe-west1
asia-south1 (Mumbai) asia-east2