กำหนดค่าการเข้าถึงข้อมูลในพื้นที่ด้วยปลายทางระดับภูมิภาค

หน้านี้จะอธิบายวิธีกำหนดค่าไลบรารีของไคลเอ็นต์ Cloud Firestore เพื่อใช้ปลายทางระดับภูมิภาคหรือหลายภูมิภาค

เมื่อใช้ไลบรารีของไคลเอ็นต์ Cloud Firestore คุณจะใช้ปลายทางต่อไปนี้ได้

  • ปลายทางทั่วโลก: โดยค่าเริ่มต้น ไลบรารีของไคลเอ็นต์ Cloud Firestore จะส่งคำขอ API ไปยังปลายทางบริการทั่วโลกที่ชื่อ firestore.googleapis.com ปลายทางบริการส่วนกลางจะกำหนดเส้นทางคำขอไปยังฐานข้อมูลของคุณ ในระหว่างการกำหนดเส้นทาง คำขออาจผ่านเซิร์ฟเวอร์ในตำแหน่งที่ต่างจากตำแหน่งฐานข้อมูลของคุณ

  • ปลายทางระดับภูมิภาค: ปลายทางระดับภูมิภาคจะบังคับใช้ข้อจำกัดเพื่อให้มั่นใจว่าข้อมูลจะได้รับการส่ง จัดเก็บ และประมวลผลในภูมิภาค Google Cloud ที่ระบุ เพื่อให้มั่นใจว่าปลายทางของบริการจะประมวลผลคำขอ Cloud Firestore ของแอปในภูมิภาคเดียวกับฐานข้อมูล ให้ระบุปลายทางระดับภูมิภาคในไลบรารีของไคลเอ็นต์

  • ปลายทางแบบหลายภูมิภาค: ปลายทางแบบหลายภูมิภาคจะบังคับใช้ข้อจำกัดเพื่อให้มั่นใจว่าข้อมูลจะได้รับการจัดเก็บและประมวลผลในหลายภูมิภาคที่ระบุ เพื่อให้มั่นใจว่าปลายทางของบริการจะประมวลผลคำขอ Cloud Firestore ของแอปในหลายภูมิภาคเดียวกันกับฐานข้อมูลของคุณ ให้ระบุปลายทางแบบหลายภูมิภาคในไลบรารีของไคลเอ็นต์

ตั้งค่าปลายทางระดับภูมิภาคหรือหลายภูมิภาค

วิธีการกำหนดค่าปลายทางระดับภูมิภาคหรือหลายภูมิภาคจะเหมือนกัน โดยคุณต้องระบุสตริงปลายทางเมื่อเริ่มต้นไลบรารีของไคลเอ็นต์ ตัวอย่างต่อไปนี้แสดงวิธีตั้งค่าสตริงปลายทางโดยใช้ปลายทางระดับภูมิภาค (firestore.us-central1.rep.googleapis.com) หากต้องการใช้ปลายทางแบบหลายภูมิภาค ให้ระบุสตริงปลายทางแบบหลายภูมิภาคที่สอดคล้องกับตำแหน่งของฐานข้อมูล (เช่น firestore.us.rep.googleapis.com สำหรับ nam5)

Java


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

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)

ความหมายของอุปกรณ์ปลายทางระดับภูมิภาคและหลายภูมิภาค

ปลายทางระดับภูมิภาค (REP):

Cloud Firestore รองรับปลายทางระดับภูมิภาคสำหรับสถานที่ตั้งระดับภูมิภาคที่ระบุไว้ที่นี่ สถานที่ตั้ง Cloud Firestore

ใช้รูปแบบต่อไปนี้เพื่อกำหนดปลายทางระดับภูมิภาค

Java

  firestore.REGION_NAME.rep.googleapis.com:443

ตรวจสอบว่าได้กำหนดหมายเลขพอร์ตพร้อมกับปลายทางแล้ว

Python

  firestore.REGION_NAME.rep.googleapis.com

Go

  firestore.REGION_NAME.rep.googleapis.com:443

ตรวจสอบว่าได้กำหนดหมายเลขพอร์ตพร้อมกับปลายทางแล้ว

แทนที่ REGION_NAME ด้วยชื่อโฮสต์ระดับภูมิภาค

ตัวอย่างชื่อโฮสต์มีดังนี้

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

ปลายทางแบบหลายภูมิภาค (MREP)

สำหรับปลายทางหลายภูมิภาค ให้ใช้ us สำหรับตำแหน่ง nam5 และ nam7 และ eu สำหรับตำแหน่ง eur3 (ดูตำแหน่งหลายภูมิภาค)

Java

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

ตรวจสอบว่าได้กำหนดหมายเลขพอร์ตพร้อมกับปลายทางแล้ว

Python

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

Go

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

ตรวจสอบว่าได้กำหนดหมายเลขพอร์ตพร้อมกับปลายทางแล้ว

ข้อจำกัด

ปลายทางตามสถานที่ (เลิกใช้งานแล้ว)

เราเลิกใช้งานปลายทางตามสถานที่แล้ว โปรดใช้ปลายทางระดับภูมิภาคหรือหลายภูมิภาคแทน

ก่อนหน้านี้ Cloud Firestore รองรับปลายทางตามตำแหน่งในรูปแบบต่อไปนี้

Java

  REGION_NAME-firestore.googleapis.com:443

ตรวจสอบว่าได้กำหนดหมายเลขพอร์ตพร้อมกับปลายทางแล้ว

Python

  REGION_NAME-firestore.googleapis.com

Go

  REGION_NAME-firestore.googleapis.com:443

ตรวจสอบว่าได้กำหนดหมายเลขพอร์ตพร้อมกับปลายทางแล้ว

แทนที่ REGION_NAME ด้วยชื่อโฮสต์ระดับภูมิภาคหรือหลายภูมิภาค

ตัวอย่างชื่อโฮสต์มีดังนี้

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

ดูรายชื่อชื่อโฮสต์แบบหลายภูมิภาคและแบบภูมิภาคทั้งหมดได้ที่ ตำแหน่งของ Cloud Firestore

จำกัดการใช้งานปลายทาง API ทั่วโลก

หากต้องการช่วยบังคับใช้ปลายทางระดับภูมิภาคและหลายภูมิภาค ให้ใช้ข้อจำกัดนโยบายองค์กร constraints/gcp.restrictEndpointUsage เพื่อบล็อกคำขอไปยังปลายทาง API ทั่วโลก ดูข้อมูลเพิ่มเติมได้ที่การจำกัดการใช้งานปลายทาง