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

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

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

  • Point de terminaison global : par défaut, les bibliothèques clientes Firestore envoient des requêtes 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écifiée. Pour vous assurer que le point de terminaison de service traite les requêtes 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 transmises, stockées et traitées dans une Google Cloud multirégion spécifique. Pour vous assurer que le point de terminaison de service traite les requêtes 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

Pour vous authentifier auprès de Firestore, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.


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

Pour vous authentifier auprès de Firestore, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

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) :

Firestore accepte les points de terminaison régionaux pour les emplacements régionaux listés sur la page Emplacements 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

Go

    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

Go

    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.

Firestore acceptait auparavant 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

Go

  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 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.

Étapes suivantes