Configurare la località dei dati con endpoint regionali

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

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

  • Endpoint globale: per impostazione predefinita, le librerie client di Firestore inviano 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 server in una località diversa da quella del database.

  • Endpoint regionale: un endpoint regionale applica restrizioni che garantiscono che i dati vengano trasmessi, archiviati ed elaborati in una Google Cloud regione specificata. Per assicurarti che l'endpoint di servizio elabori le richieste Firestore della tua app nella stessa regione del tuo database, specifica un endpoint regionale nella libreria client.

  • Endpoint multiregionale: un endpoint multiregionale applica restrizioni che garantiscono che i dati vengano trasmessi, archiviati ed elaborati in una Google Cloud multi-regione specificata. Per assicurarti che l'endpoint di servizio elabori le richieste Firestore della tua app nella stessa multiregione del tuo database, specifica un endpoint multiregionale nella libreria client.

Imposta un endpoint regionale o multiregionale

Il metodo per configurare un endpoint regionale o multiregionale è lo stesso: fornisci la stringa dell'endpoint durante l'inizializzazione della libreria client. Gli esempi seguenti mostrano come impostare la stringa dell'endpoint utilizzando un endpoint regionale (firestore.us-central1.rep.googleapis.com). Per utilizzare un endpoint multiregionale, fornisci una stringa dell'endpoint multiregionale corrispondente alla posizione del database (ad esempio, firestore.us.rep.googleapis.com per nam5).

Java

Per eseguire l'autenticazione in Firestore, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura 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 firestore.us-central1.rep.googleapis.com:443
            .setHost(endpoint)
            .build();
    Firestore dbWithEndpoint = firestoreOptions.getService();

    return dbWithEndpoint;
  }

}

Python

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

ENDPOINT = "firestore.africa-south1.rep.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 regionali e multiregionali

Endpoint regionali (REP):

Firestore supporta gli endpoint regionali per le località regionali elencate qui Località Firestore.

Utilizza il seguente formato per definire gli endpoint regionali:

Java

    firestore.REGION_NAME.rep.googleapis.com:443

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

Python

    firestore.REGION_NAME.rep.googleapis.com

Go

    firestore.REGION_NAME.rep.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.

Ecco alcuni esempi di nomi host:

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

Endpoint multiregionali (MREP)

Per gli endpoint multiregionali, utilizza us per le località nam5 e nam7 e eu per la località eur3 (vedi Località multiregionali).

Java

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

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

Python

    firestore.us.rep.googleapis.com
    firestore.eu.rep.googleapis.com

Go

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

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

Limitazioni

Endpoint di localizzazione (ritirati)

Gli endpoint basati sulla posizione sono ora deprecati. Utilizza invece endpoint regionali o multiregionali.

In precedenza, Firestore supportava endpoint basati sulla posizione con il seguente formato:

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 regionale o multiregionale.

Ecco alcuni esempi di nomi host:

  • 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 multiregionali e regionali, consulta Località Firestore.

Limita l'utilizzo degli endpoint API globali

Per contribuire a imporre l'utilizzo di endpoint regionali e multiregionali, utilizza il vincolo delle policy dell'organizzazione constraints/gcp.restrictEndpointUsage per bloccare le richieste all'endpoint API globale. Per saperne di più, consulta Limitazione dell'utilizzo degli endpoint.

Passaggi successivi