Как настроить локализацию данных с помощью региональных конечных точек

На этой странице описано, как настроить клиентские библиотеки 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

Проложить маршрут

  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

Проложить маршрут

  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

Проложить маршрут

  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. Подробнее об ограничении использования конечных точек…