Datenlokalität mit regionalen Endpunkten konfigurieren

Auf dieser Seite wird beschrieben, wie Sie die Firestore-Clientbibliotheken so konfigurieren, dass sie einen regionalen oder multiregionalen Endpunkt verwenden.

Wenn Sie Firestore-Clientbibliotheken verwenden, können Sie einen der folgenden Endpunkte verwenden:

  • Globaler Endpunkt: Standardmäßig senden die Firestore-Clientbibliotheken API-Anfragen an einen globalen Dienstendpunkt mit dem Namen firestore.googleapis.com. Der globale Dienstendpunkt leitet die Anfrage an Ihre Datenbank weiter. Während des Routings kann eine Anfrage einen Server an einem anderen Standort als dem Ihrer Datenbank durchlaufen.

  • Regionaler Endpunkt: Ein regionaler Endpunkt erzwingt Einschränkungen, damit Daten in einer bestimmten Google Cloud Region übertragen, gespeichert und verarbeitet werden. Wenn Sie sicherstellen möchten, dass der Dienstendpunkt die Firestore-Anfragen Ihrer App in derselben Region wie Ihre Datenbank verarbeitet, geben Sie in der Clientbibliothek einen regionalen Endpunkt an.

  • Multiregionaler Endpunkt: Ein multiregionaler Endpunkt erzwingt Einschränkungen, damit Daten in einer bestimmten Google Cloud Multiregion übertragen, gespeichert und verarbeitet werden. Wenn Sie sicherstellen möchten, dass der Dienstendpunkt die Firestore-Anfragen Ihrer App in derselben Multiregion wie Ihre Datenbank verarbeitet, geben Sie in der Clientbibliothek einen multiregionalen Endpunkt an.

Regionalen oder multiregionalen Endpunkt festlegen

Die Methode zum Konfigurieren eines regionalen oder multiregionalen Endpunkts ist dieselbe: Sie geben die Endpunkt-String beim Initialisieren der Clientbibliothek an. In den folgenden Beispielen wird gezeigt, wie Sie den Endpunkt-String mit einem regionalen Endpunkt (firestore.us-central1.rep.googleapis.com) festlegen. Wenn Sie einen multiregionalen Endpunkt verwenden möchten, geben Sie einen multiregionalen Endpunkt-String an, der dem Standort Ihrer Datenbank entspricht (z. B. firestore.us.rep.googleapis.com für nam5).

Java

Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Firestore zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.


import com.google.auth.oauth2.GoogleCredentials;
import com.google.cloud.firestore.Firestore;
import com.google.cloud.firestore.FirestoreOptions;


/**
 * Demonstrate how to set a regional endpoint.
 */
public class RegionalEndpointSnippets {

  /**
   * Create a client with a regional endpoint.
   **/
  public Firestore regionalEndpoint(String projectId, String endpoint) throws Exception {
    FirestoreOptions firestoreOptions =
        FirestoreOptions.newBuilder()
            .setProjectId(projectId)
            .setCredentials(GoogleCredentials.getApplicationDefault())
            // set endpoint like firestore.us-central1.rep.googleapis.com:443
            .setHost(endpoint)
            .build();
    Firestore dbWithEndpoint = firestoreOptions.getService();

    return dbWithEndpoint;
  }

}

Python

Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Firestore zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

ENDPOINT = "firestore.africa-south1.rep.googleapis.com"
client_options = ClientOptions(api_endpoint=ENDPOINT)
db = firestore.Client(client_options=client_options)

cities_query = db.collection("cities").limit(2).get()
for r in cities_query:
    print(r)

Semantik regionaler und multiregionaler Endpunkte

Regionale Endpunkte (Regional Endpoints, REP)

Firestore unterstützt regionale Endpunkte für die hier aufgeführten regionalen Standorte: Firestore-Standorte.

Verwenden Sie das folgende Format, um regionale Endpunkte zu definieren:

Java

    firestore.REGION_NAME.rep.googleapis.com:443

Achten Sie darauf, dass die Portnummer zusammen mit dem Endpunkt definiert ist.

Python

    firestore.REGION_NAME.rep.googleapis.com

Go

    firestore.REGION_NAME.rep.googleapis.com:443

Achten Sie darauf, dass die Portnummer zusammen mit dem Endpunkt definiert ist.

Ersetzen Sie REGION_NAME durch den Namen eines regionalen Hostnamens.

Einige Beispiele für Hostnamen:

  • firestore.us-central1.rep.googleapis.com
  • firestore.europe-west1.rep.googleapis.com

Multiregionale Endpunkte (Multi-Regional Endpoints, MREP)

Verwenden Sie für multiregionale Endpunkte us für die Standorte nam5 und nam7 und eu für den Standort eur3 (siehe Multiregionale Standorte).

Java

    firestore.us.rep.googleapis.com:443
    firestore.eu.rep.googleapis.com:443

Achten Sie darauf, dass die Portnummer zusammen mit dem Endpunkt definiert ist.

Python

    firestore.us.rep.googleapis.com
    firestore.eu.rep.googleapis.com

Go

    firestore.us.rep.googleapis.com:443
    firestore.eu.rep.googleapis.com:443

Achten Sie darauf, dass die Portnummer zusammen mit dem Endpunkt definiert ist.

Beschränkungen

Standortendpunkte (veraltet)

Standortendpunkte sind jetzt veraltet. Verwenden Sie stattdessen regionale oder multiregionale Endpunkte.

Firestore unterstützte zuvor Standortendpunkte mit dem folgenden Format:

Java

  REGION_NAME-firestore.googleapis.com:443

Achten Sie darauf, dass die Portnummer zusammen mit dem Endpunkt definiert ist.

Python

  REGION_NAME-firestore.googleapis.com

Go

  REGION_NAME-firestore.googleapis.com:443

Achten Sie darauf, dass die Portnummer zusammen mit dem Endpunkt definiert ist.

Ersetzen Sie REGION_NAME durch den Namen eines regionalen oder multiregionalen Hostnamens.

Einige Beispiele für Hostnamen:

  • eur3-firestore.googleapis.com
  • nam5-firestore.googleapis.com
  • europe-west6-firestore.googleapis.com
  • asia-northeast2-firestore.googleapis.com

Eine vollständige Liste der multiregionalen und regionalen Hostnamen finden Sie unter Firestore-Standorte.

Nutzung globaler API-Endpunkt einschränken

Um die Verwendung regionaler und multiregionaler Endpunkte zu erzwingen, können Sie die Einschränkung der Organisationsrichtlinie constraints/gcp.restrictEndpointUsage verwenden, um Anfragen an den globalen API-Endpunkt zu blockieren. Weitere Informationen finden Sie unter Endpunktnutzung einschränken.

Nächste Schritte