Configura la localidad de los datos con endpoints regionales

En esta página, se describe cómo configurar las bibliotecas cliente de Firestore en modo Datastore para usar un endpoint regional o multirregional.

Cuando usas las bibliotecas cliente de Firestore en modo Datastore, puedes usar cualquiera de los siguientes endpoints:

  • Endpoint global: De forma predeterminada, las bibliotecas cliente de Firestore en modo Datastore envían solicitudes a la API a un endpoint de servicio global llamado datastore.googleapis.com. El endpoint de servicio global enruta la solicitud a tu base de datos. Durante el enrutamiento, es posible que la solicitud pase por un servidor en una ubicación diferente a la de tu base de datos.

  • Endpoint regional: Un endpoint regional aplica restricciones que garantizan que los datos se transmitan, almacenen y procesen en una región de especificada Google Cloud . Para asegurarte de que el endpoint de servicio procese las solicitudes de Firestore en modo Datastore de tu app en la misma región que tu base de datos, especifica un endpoint regional en la biblioteca cliente.

  • Endpoint multirregional: Un endpoint multirregional aplica restricciones para garantizar que los datos se transmitan, almacenen y procesen en una multirregión especificada. Google Cloud Para asegurarte de que el endpoint de servicio procese las solicitudes de Firestore en modo Datastore de tu app en la misma ubicación multirregional que tu base de datos, especifica un endpoint multirregional en la biblioteca cliente.

Configura un endpoint regional o multirregional

El método para configurar un endpoint regional o multirregional es el mismo: debes proporcionar la cadena del endpoint cuando inicializas la biblioteca cliente. En los siguientes ejemplos, se muestra cómo configurar la cadena de endpoint con un endpoint regional (datastore.us-central1.rep.googleapis.com). Para usar un endpoint multirregional, proporciona una cadena de endpoint multirregional que corresponda a la ubicación de tu base de datos (por ejemplo, datastore.us.rep.googleapis.com para nam5).

Java

Para obtener información sobre cómo instalar y usar la biblioteca cliente en modo Datastore, consulta las bibliotecas cliente en modo Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Java en modo Datastore.

Para autenticarte en el modo Datastore, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo 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

Para obtener información sobre cómo instalar y usar la biblioteca cliente en modo Datastore, consulta las bibliotecas cliente en modo Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Python en modo Datastore.

Para autenticarte en el modo Datastore, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo 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)

Semántica de los endpoints regionales y multirregionales

Endpoints regionales (REP):

Firestore en modo Datastore admite endpoints regionales para las ubicaciones regionales que se enumeran aquí Ubicaciones de Firestore en modo Datastore.

Usa el siguiente formato para definir endpoints regionales:

Java

    datastore.REGION_NAME.rep.googleapis.com:443

Asegúrate de que el número de puerto esté definido junto con el endpoint.

Python

    datastore.REGION_NAME.rep.googleapis.com

Go

    datastore.REGION_NAME.rep.googleapis.com:443

Asegúrate de que el número de puerto esté definido junto con el endpoint.

Reemplaza REGION_NAME por el nombre de un host regional.

Estos son algunos ejemplos de nombres de host:

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

Endpoints multirregionales (MREP)

Para los endpoints multirregionales, usa us para las ubicaciones nam5 y nam7, y eu para la ubicación eur3 (consulta Ubicaciones multirregionales).

Java

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

Asegúrate de que el número de puerto esté definido junto con el endpoint.

Python

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

Go

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

Asegúrate de que el número de puerto esté definido junto con el endpoint.

Endpoints de ubicación (obsoleto)

Los endpoints de ubicación dejaron de estar disponibles. En su lugar, usa endpoints regionales o multirregionales.

Anteriormente, Firestore en modo Datastore admitía endpoints de ubicación con el siguiente formato:

Java

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

Asegúrate de que se use la URL https completa y de que el número de puerto esté definido junto con el endpoint.

Python

  https://REGION_NAME-datastore.googleapis.com

Asegúrate de que la URL https completa esté configurada como el endpoint de ubicación.

Go

  REGION_NAME-datastore.googleapis.com:443

Asegúrate de que el número de puerto esté definido junto con el endpoint.

Reemplaza REGION_NAME por el nombre de un host regional o multirregional.

Estos son algunos ejemplos de nombres de host:

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

Para obtener una lista completa de los nombres de host regionales y multirregionales, consulta Ubicaciones de Firestore en modo Datastore.

Restringe el uso del extremo de API global

Para ayudar a aplicar de manera forzosa el uso de endpoints regionales y multirregionales, usa la restricción de políticas de la organización constraints/gcp.restrictEndpointUsage para bloquear las solicitudes al extremo de API global. Para obtener más información, consulta Restringe el uso de endpoints.

¿Qué sigue?