Configurar a localidade dos dados com endpoints regionais

Nesta página, descrevemos como configurar as bibliotecas de cliente do Firestore no modo Datastore para usar um endpoint regional ou multirregional.

Ao usar as bibliotecas de cliente do Firestore no modo Datastore, é possível usar qualquer um dos seguintes endpoints:

  • Endpoint global: por padrão, as bibliotecas de cliente do Firestore no modo Datastore enviam solicitações de API para um endpoint de serviço global chamado datastore.googleapis.com. O endpoint de serviço global roteia a solicitação para seu banco de dados. Durante o roteamento, a solicitação pode passar por um servidor em um local diferente do local do seu banco de dados.

  • Endpoint regional: um endpoint regional impõe restrições que garantem que os dados sejam transmitidos, armazenados e tratados em uma Google Cloud região específica. Para garantir que o endpoint de serviço processe as solicitações do Firestore no modo Datastore do seu app na mesma região do banco de dados, especifique um endpoint regional na biblioteca de cliente.

  • Endpoint multirregional: um endpoint multirregional impõe restrições que garantem que os dados sejam transmitidos, armazenados e processados em uma Google Cloud multirregião especificada. Para garantir que o endpoint de serviço processe as solicitações do Firestore no modo Datastore do app na mesma multirregião do banco de dados, especifique um endpoint multirregional na biblioteca de cliente.

Definir um endpoint regional ou multirregional

O método para configurar um endpoint regional ou multirregional é o mesmo: você fornece a string do endpoint ao inicializar a biblioteca de cliente. Os exemplos a seguir mostram como definir a string de endpoint usando um endpoint regional (datastore.us-central1.rep.googleapis.com). Para usar um endpoint multirregional, forneça uma string de endpoint multirregional correspondente ao local do banco de dados (por exemplo, datastore.us.rep.googleapis.com para nam5).

Java

Para saber como instalar e usar a biblioteca de cliente para o modo Datastore, consulte Bibliotecas de cliente no modo Datastore. Para mais informações, consulte a documentação de referência da API Java do modo Datastore.

Para autenticar no modo Datastore, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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 saber como instalar e usar a biblioteca de cliente para o modo Datastore, consulte Bibliotecas de cliente no modo Datastore. Para mais informações, consulte a documentação de referência da API Python do modo Datastore.

Para autenticar no modo Datastore, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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 do endpoint regional e multirregional

Endpoints regionais (REP):

O Firestore no modo Datastore oferece suporte a endpoints regionais para os locais regionais listados aqui: Locais do Firestore no modo Datastore.

Use o seguinte formato para definir endpoints regionais:

Java

    datastore.REGION_NAME.rep.googleapis.com:443

Verifique se o número da porta está definido com o endpoint.

Python

    datastore.REGION_NAME.rep.googleapis.com

Go

    datastore.REGION_NAME.rep.googleapis.com:443

Verifique se o número da porta está definido com o endpoint.

Substitua REGION_NAME pelo nome de um hostname regional.

Alguns exemplos de nomes de host:

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

Endpoints multirregionais (MREP)

Para endpoints multirregionais, use us nos locais nam5 e nam7, e eu no local eur3. Consulte Locais multirregionais.

Java

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

Verifique se o número da porta está definido com o 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

Verifique se o número da porta está definido com o endpoint.

Endpoints de local (descontinuados)

Os endpoints de local foram descontinuados. Em vez disso, use endpoints regionais ou multirregionais.

O Firestore no modo Datastore oferecia suporte a endpoints regionais com o seguinte formato:

Java

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

Verifique se o URL https completo está sendo usado e se o número da porta está definido com o endpoint.

Python

  https://REGION_NAME-datastore.googleapis.com

Verifique se o URL https completo está definido como o endpoint de localização.

Go

  REGION_NAME-datastore.googleapis.com:443

Verifique se o número da porta está definido com o endpoint.

Substitua REGION_NAME pelo nome de um nome do host regional ou multirregional.

Alguns exemplos de nomes de host:

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

Para uma lista completa de nomes de host multirregionais e regionais, consulte Locais do Firestore no modo Datastore.

Restringir o uso de endpoints de API globais

Para ajudar na aplicação do uso de endpoints regionais e multirregionais, utilize a restrição de políticas da organização constraints/gcp.restrictEndpointUsage para bloquear solicitações ao endpoint de API global. Para mais informações, consulte Restringir o uso de endpoints.

A seguir