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

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

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

  • Endpoint globale: per impostazione predefinita, le librerie client Cloud Firestore inviano richieste API a un endpoint di servizio globale denominato firestore.googleapis.com. L'endpoint di servizio globale indirizza la richiesta al tuo database. Durante il routing, una richiesta potrebbe passare attraverso un server in una località diversa da quella del tuo 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 Cloud 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 archiviati ed elaborati in una multiregione specificata. Per assicurarti che l'endpoint di servizio elabori le richieste Cloud Firestore della tua app nella stessa regione multipla 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 tuo database (ad esempio, firestore.us.rep.googleapis.com per nam5).

Java

Per saperne di più sull'installazione e la creazione di un client Cloud Firestore, consulta Librerie client Cloud Firestore.


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 saperne di più sull'installazione e la creazione di un client Cloud Firestore, consulta Librerie client Cloud Firestore.

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):

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

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

Vai

  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

Vai

  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.

Cloud Firestore endpoint di localizzazione precedentemente supportati 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

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.

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 di nomi host multiregionali e regionali, consulta le località Cloud 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.