Configura la localidad de los datos con extremos regionales

En esta página, se describe cómo configurar las bibliotecas cliente de Firestore para usar un extremo regional.

Cuando usas las bibliotecas cliente de Firestore, puedes usar cualquiera de los siguientes extremos:

  • Extremo global: De forma predeterminada, las bibliotecas cliente de Firestore envían solicitudes a la API a un extremo de servicio global llamado firestore.googleapis.com. El extremo de servicio global dirige la solicitud a tu base de datos. Durante el enrutamiento, una solicitud puede pasar por un extremo de servicio regional en una ubicación que es diferente de la ubicación de tu base de datos.

  • Extremo regional: Un extremo regional aplica restricciones regionales, lo que garantiza que los datos se almacenen y procesen en una región especificada. Para garantizar que el extremo del servicio procese las solicitudes de Firestore de tu app en la misma región que tu base de datos, especifica un extremo regional en la biblioteca cliente.

Cómo configurar un extremo regional

En los siguientes ejemplos, se muestra cómo configurar un extremo regional cuando inicializas un cliente de Firestore. Si configuras un extremo regional distinto del lugar donde residen tus datos, es posible que se genere un error PermissionDeniedError.

Java

Para autenticarte en Firestore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo 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 nam5-firestore.googleapis.com:443
            .setHost(endpoint)
            .build();
    Firestore dbWithEndpoint = firestoreOptions.getService();

    return dbWithEndpoint;
  }

}

Python

Para autenticarte en Firestore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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)

Semántica de los extremos regionales

Firestore admite extremos regionales para ubicaciones regionales y multirregionales.

Usa el siguiente formato para definir extremos regionales:

Java

  REGION_NAME-firestore.googleapis.com:443

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

Python

  REGION_NAME-firestore.googleapis.com

Go

  REGION_NAME-firestore.googleapis.com:443

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

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

Estos son algunos ejemplos de nombres de host:

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

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

¿Qué sigue?