Datenlokalität mit Standortendpunkten konfigurieren

Auf dieser Seite wird beschrieben, wie Sie die Firestore-Clientbibliotheken für die Verwendung eines Standortendpunkts konfigurieren.

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. Beim Routing kann eine Anfrage einen Standortdienstendpunkt an einem anderen Standort als dem Ihrer Datenbank durchlaufen.

  • Standortbezogener Endpunkt: Ein standortbezogener Endpunkt erzwingt regionale Einschränkungen, damit Daten in einer bestimmten Region gespeichert und verarbeitet werden. Damit der Dienstendpunkt die Firestore-Anfragen Ihrer App in derselben Region wie Ihre Datenbank verarbeitet, geben Sie in der Clientbibliothek einen Standortendpunkt an.

Standortendpunkt festlegen

Die folgenden Beispiele zeigen, wie Sie beim Initialisieren eines Firestore-Clients einen Standortendpunkt festlegen. Wenn Sie einen anderen Standortendpunkt als den Speicherort Ihrer Daten festlegen, kann dies zu einem PermissionDeniedError-Fehler führen.

Java

Richten Sie die 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 nam5-firestore.googleapis.com:443
            .setHost(endpoint)
            .build();
    Firestore dbWithEndpoint = firestoreOptions.getService();

    return dbWithEndpoint;
  }

}

Python

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

ENDPOINT = "nam5-firestore.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 von Standortendpunkten

Firestore unterstützt Standortendpunkte sowohl für regionale als auch für multiregionale Standorte.

Verwenden Sie das folgende Format, um Standortendpunkte zu definieren:

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.

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 Endpunkte zu erzwingen, können Sie die Organisationsrichtlinieneinschränkung constraints/gcp.restrictEndpointUsage verwenden, um Anfragen an den globalen API-Endpunkt zu blockieren. Weitere Informationen finden Sie unter Endpunktnutzung einschränken.

Nächste Schritte