Configura la localizzazione dei dati con gli endpoint a livello di regione

Questa pagina descrive come configurare le librerie client Firestore per utilizzare un endpoint regionale.

Quando utilizzi le librerie client di Firestore, puoi utilizzare uno dei seguenti endpoint:

  • Endpoint globale: per impostazione predefinita, le librerie client Firestore inviano richieste API a un indirizzo endpoint di servizio denominato firestore.googleapis.com. L'endpoint del servizio globale indirizza la richiesta al tuo database. Durante il routing, una richiesta potrebbe passare attraverso un endpoint di servizio a livello di regione in una località diversa dalla posizione del database.

  • Endpoint a livello di regione: un endpoint a livello di regione applica limitazioni regionali, garantendo che i dati vengano archiviati ed elaborati in una regione specificata. Per garantire che l'endpoint del servizio elabori le richieste Firestore della tua app nella stessa regione del database, specifica un endpoint regionale nella libreria client.

Imposta un endpoint a livello di regione

Gli esempi riportati di seguito mostrano come impostare un endpoint regionale quando inizilizza un client Firestore. Impostazione di un endpoint a livello di regione diverso da quello in cui si trovano i dati potrebbe causare un errore PermissionDeniedError.

Java

Per autenticarti a Firestore, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.


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

Per eseguire l'autenticazione su Firestore, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

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)

Semantica degli endpoint a livello di regione

Firestore supporta gli endpoint a livello di regione per località sia a livello di regione che a livello di più regioni.

Utilizza il formato seguente per definire gli endpoint a livello di regione:

Java

  REGION_NAME-firestore.googleapis.com:443

Assicurati che il numero di porta sia definito insieme all'endpoint.

Python

  REGION_NAME-firestore.googleapis.com

Vai

  REGION_NAME-firestore.googleapis.com:443

Assicurati che il numero di porta sia definito insieme all'endpoint.

Sostituisci REGION_NAME con il nome di un nome host regionale o multiregionale.

Alcuni esempi di nomi host sono:

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

Per un elenco completo degli host name multiregionali e regionali, consulta Località di Firestore.

Passaggi successivi