Configure a localidade dos dados com pontos finais de localização

Esta página descreve como configurar as bibliotecas cliente do Firestore para usar um ponto final de localização.

Quando usa as bibliotecas cliente do Firestore, pode usar qualquer um dos seguintes pontos finais:

  • Ponto final global: por predefinição, as bibliotecas cliente do Firestore enviam pedidos de API para um ponto final de serviço global denominado firestore.googleapis.com. O ponto final do serviço global encaminha o pedido para a sua base de dados. Durante o planeamento de trajeto, um pedido pode passar por um ponto final de serviço de localização numa localização diferente da localização da sua base de dados.

  • Ponto final de localização: um ponto final de localização aplica restrições regionais, garantindo que os dados são armazenados e tratados numa região especificada. Para garantir que o ponto final do serviço processa os pedidos do Firestore da sua app na mesma região que a sua base de dados, especifique um ponto final de localização na biblioteca do cliente.

Defina um ponto final de localização

Os exemplos seguintes mostram como definir um ponto final de localização quando inicializa um cliente do Firestore. A definição de um ponto final de localização diferente daquele onde os seus dados residem pode resultar num erro PermissionDeniedError.

Java

Para se autenticar no Firestore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento 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 se autenticar no Firestore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento 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 ponto final de localização

O Firestore suporta pontos finais de localização para localizações regionais e multirregionais.

Use o seguinte formato para definir pontos finais de localização:

Java

  REGION_NAME-firestore.googleapis.com:443

Certifique-se de que o número da porta está definido juntamente com o ponto final.

Python

  REGION_NAME-firestore.googleapis.com

Go

  REGION_NAME-firestore.googleapis.com:443

Certifique-se de que o número da porta está definido juntamente com o ponto final.

Substitua REGION_NAME pelo nome de um nome de anfitrião regional ou multirregional.

Seguem-se alguns exemplos de nomes de anfitrião:

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

Para ver uma lista completa de nomes de anfitrião regionais e multirregionais, consulte o artigo Localizações do Firestore.

Restrinja a utilização do ponto final da API global

Para ajudar a aplicar a utilização de pontos finais regionais, use a restrição da política da organização constraints/gcp.restrictEndpointUsage para bloquear pedidos ao ponto final da API global. Para mais informações, consulte o artigo Restringir a utilização de pontos finais.

O que se segue?