Configurer la localité des données avec des points de terminaison régionaux

Cette page explique comment configurer les bibliothèques clientes Cloud Firestore pour utiliser un point de terminaison régional ou multirégional.

Lorsque vous utilisez les bibliothèques clientes Cloud Firestore, vous pouvez utiliser l'un des points de terminaison suivants :

  • Point de terminaison global : par défaut, les bibliothèques clientes Cloud Firestore envoient les requêtes d'API à un point de terminaison de service global nommé firestore.googleapis.com. Le point de terminaison du service mondial achemine la requête vers votre base de données. Lors du routage, une requête peut transiter par un serveur situé dans un emplacement différent de celui de votre base de données.

  • Point de terminaison régional : un point de terminaison régional applique des restrictions pour s'assurer que les données sont transmises, stockées et traitées dans une région Google Cloud spécifique. Pour vous assurer que le point de terminaison de service traite les requêtes Cloud Firestore de votre application dans la même région que votre base de données, spécifiez un point de terminaison régional dans la bibliothèque cliente.

  • Point de terminaison multirégional : un point de terminaison multirégional applique des restrictions pour s'assurer que les données sont stockées et traitées dans une région multirégionale spécifique. Pour vous assurer que le point de terminaison de service traite les requêtes Cloud Firestore de votre application dans la même multirégion que votre base de données, spécifiez un point de terminaison multirégional dans la bibliothèque cliente.

Définir un point de terminaison régional ou multirégional

La méthode de configuration d'un point de terminaison régional ou multirégional est la même : vous fournissez la chaîne du point de terminaison lors de l'initialisation de la bibliothèque cliente. Les exemples suivants montrent comment définir la chaîne de point de terminaison à l'aide d'un point de terminaison régional (firestore.us-central1.rep.googleapis.com). Pour utiliser un point de terminaison multirégional, fournissez une chaîne de point de terminaison multirégional correspondant à l'emplacement de votre base de données (par exemple, firestore.us.rep.googleapis.com pour nam5).

Java


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

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)

Sémantique des points de terminaison régionaux et multirégionaux

Points de terminaison régionaux (REP) :

Cloud Firestore est compatible avec les points de terminaison régionaux pour les emplacements régionaux listés ici : Emplacements Cloud Firestore.

Utilisez le format suivant pour définir les points de terminaison régionaux :

Java

  firestore.REGION_NAME.rep.googleapis.com:443

Assurez-vous que le numéro de port est défini avec le point de terminaison.

Python

  firestore.REGION_NAME.rep.googleapis.com

Accéder

  firestore.REGION_NAME.rep.googleapis.com:443

Assurez-vous que le numéro de port est défini avec le point de terminaison.

Remplacez REGION_NAME par le nom d'hôte régional.

Voici quelques exemples de noms d'hôte :

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

Points de terminaison multirégionaux (MREP)

Pour les points de terminaison multirégionaux, utilisez us pour les emplacements nam5 et nam7, et eu pour l'emplacement eur3 (voir Emplacements multirégionaux).

Java

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

Assurez-vous que le numéro de port est défini avec le point de terminaison.

Python

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

Accéder

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

Assurez-vous que le numéro de port est défini avec le point de terminaison.

Limites

Points de terminaison localisés (obsolètes)

Les points de terminaison localisés sont désormais obsolètes. Utilisez plutôt des points de terminaison régionaux ou multirégionaux.

Cloud Firestore prenait auparavant en charge les points de terminaison localisés au format suivant :

Java

  REGION_NAME-firestore.googleapis.com:443

Assurez-vous que le numéro de port est défini avec le point de terminaison.

Python

  REGION_NAME-firestore.googleapis.com

Accéder

  REGION_NAME-firestore.googleapis.com:443

Assurez-vous que le numéro de port est défini avec le point de terminaison.

Remplacez REGION_NAME par le nom d'un nom d'hôte régional ou multirégional.

Voici quelques exemples de noms d'hôte :

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

Pour obtenir la liste complète des noms d'hôte multirégionaux et régionaux, consultez Emplacements Cloud Firestore.

Restreindre l'utilisation des points de terminaison d'API mondiaux

Pour appliquer l'utilisation de points de terminaison régionaux et multirégionaux, utilisez la contrainte de règle d'administration constraints/gcp.restrictEndpointUsage afin de bloquer les requêtes envoyées au point de terminaison d'API mondial. Pour en savoir plus, consultez Restreindre l'utilisation des points de terminaison.