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

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

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

  • Point de terminaison global : par défaut, les bibliothèques clientes Firestore en mode Datastore envoient des requêtes d'API à un point de terminaison de service global nommé datastore.googleapis.com. Le point de terminaison du service mondial achemine la requête vers votre base de données. Lors du routage, la 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 en mode Datastore 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 en mode Datastore 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 (datastore.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, datastore.us.rep.googleapis.com pour nam5).

Java

Pour savoir comment installer et utiliser la bibliothèque cliente pour le mode Datastore, consultez la page Bibliothèques clientes en mode Datastore. Pour en savoir plus, consultez la documentation de référence des API Java en mode Datastore.

Pour vous authentifier auprès du mode Datastore, 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.cloud.datastore.Datastore;
import com.google.cloud.datastore.DatastoreOptions;

public class RegionalEndpoint {

  public Datastore createClient() throws Exception {
    // Instantiates a client
    DatastoreOptions options =
        DatastoreOptions.newBuilder().setHost("https://datastore.us-central1.rep.googleapis.com").build();
    Datastore datastore = options.getService();
    return datastore;
  }
}

Python

Pour savoir comment installer et utiliser la bibliothèque cliente pour le mode Datastore, consultez la page Bibliothèques clientes en mode Datastore. Pour en savoir plus, consultez la documentation de référence des API Python en mode Datastore.

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

from google.cloud import datastore
from google.api_core.client_options import ClientOptions

ENDPOINT = "https://datastore.africa-south1.rep.googleapis.com"
client_options = ClientOptions(api_endpoint=ENDPOINT)
client = datastore.Client(client_options=client_options)

query = client.query(kind="Task")
results = list(query.fetch())
for r in results:
    print(r)

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

Points de terminaison régionaux (REP) :

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

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

Java

    datastore.REGION_NAME.rep.googleapis.com:443

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

Python

    datastore.REGION_NAME.rep.googleapis.com

Go

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

  • datastore.us-central1.rep.googleapis.com
  • datastore.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

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

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

Python

    datastore.us.rep.googleapis.com
    datastore.eu.rep.googleapis.com

Go

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

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

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 en mode Datastore acceptait auparavant les points de terminaison géographiques au format suivant :

Java

  https://REGION_NAME-datastore.googleapis.com:443

Assurez-vous d'utiliser l'URL https complète et de définir le numéro de port avec le point de terminaison.

Python

  https://REGION_NAME-datastore.googleapis.com

Assurez-vous que l'URL https complète est définie comme point de terminaison géographique.

Go

  REGION_NAME-datastore.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-datastore.googleapis.com
  • nam5-datastore.googleapis.com
  • europe-west6-datastore.googleapis.com
  • asia-northeast2-datastore.googleapis.com

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

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