Configura la località dei dati con endpoint a livello di regione

In questa pagina viene descritto come configurare le librerie client di Firestore per l'uso di un endpoint a livello di regione.

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

  • Endpoint globale: per impostazione predefinita, le librerie client di Firestore inviano le richieste API a un endpoint di servizio globale denominato firestore.googleapis.com. L'endpoint di servizio globale instrada 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 località del database.

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

Imposta un endpoint a livello di regione

I seguenti esempi mostrano come impostare un endpoint a livello di regione durante l'inizializzazione di un client Firestore. L'impostazione di un endpoint a livello di regione diverso da quello in cui si trovano i dati potrebbe causare un errore PermissionDeniedError.

Java

Per eseguire l'autenticazione in Firestore, configura 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 in Firestore, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare 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 una che a 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

Go

  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 a livello di una o più regioni.

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 dei nomi host per più regioni e regioni, consulta Sedi di Firestore.

Passaggi successivi