Mengonfigurasi lokalitas data dengan endpoint lokasi

Halaman ini menjelaskan cara mengonfigurasi library klien Firestore untuk menggunakan endpoint lokasi.

Saat menggunakan library klien Firestore, Anda dapat menggunakan salah satu endpoint berikut:

  • Endpoint global: Secara default, library klien Firestore mengirim permintaan API ke endpoint layanan global bernama firestore.googleapis.com. Endpoint layanan global mengarahkan permintaan ke database Anda. Selama perutean, permintaan dapat melewati endpoint layanan lokasi di lokasi yang berbeda dari lokasi database Anda.

  • Endpoint lokasi: Endpoint lokasi menerapkan batasan regional, sehingga memastikan bahwa data disimpan dan diproses di region tertentu. Untuk menjamin bahwa endpoint layanan memproses permintaan Firestore aplikasi Anda di region yang sama dengan database Anda, tentukan endpoint lokasi di library klien.

Menetapkan endpoint lokasi

Contoh berikut menunjukkan cara menetapkan endpoint lokasi saat Anda menginisialisasi klien Firestore. Menetapkan endpoint lokasi selain tempat data Anda berada dapat menyebabkan error PermissionDeniedError.

Java

Untuk melakukan autentikasi ke Firestore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


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

Untuk melakukan autentikasi ke Firestore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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)

Semantik endpoint lokasi

Firestore mendukung endpoint lokasi untuk lokasi region dan multi-region.

Gunakan format berikut untuk menentukan endpoint lokasi:

Java

  REGION_NAME-firestore.googleapis.com:443

Pastikan nomor port ditentukan bersama dengan endpoint.

Python

  REGION_NAME-firestore.googleapis.com

Go

  REGION_NAME-firestore.googleapis.com:443

Pastikan nomor port ditentukan bersama dengan endpoint.

Ganti REGION_NAME dengan nama host regional atau multi-regional.

Beberapa contoh nama host adalah:

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

Untuk mengetahui daftar lengkap nama host multi-region dan regional, lihat Lokasi Firestore.

Membatasi penggunaan endpoint API global

Untuk membantu menerapkan penggunaan endpoint regional, gunakan batasan kebijakan organisasi constraints/gcp.restrictEndpointUsage untuk memblokir permintaan ke endpoint API global. Untuk mengetahui informasi selengkapnya, lihat Membatasi penggunaan endpoint.

Langkah berikutnya