リージョン エンドポイントを使用してデータの局所性を構成する

このページでは、Firestore クライアント ライブラリを構成して、リージョン エンドポイントを使用する方法について説明します。

Firestore クライアント ライブラリを使用する場合、次のいずれかのエンドポイントを使用できます。

  • グローバル エンドポイント: デフォルトでは、Firestore クライアント ライブラリは firestore.googleapis.com という名前のグローバル サービス エンドポイントに API リクエストを送信します。グローバル サービス エンドポイントがリクエストをデータベースにルーティングします。ルーティング中に、リクエストが、データベースのロケーションとは異なるロケーションにあるリージョン サービス エンドポイントを通過する場合があります。

  • リージョン エンドポイント: リージョン エンドポイントにはリージョンの制約が適用されます。これにより、データが指定されたリージョンに保存され、処理されることが保証されます。サービス エンドポイントがデータベースと同じリージョンの アプリの Firestore リクエストを処理するには、クライアント ライブラリでリージョン エンドポイントを指定します

リージョン エンドポイントを設定する

次の例は、Firestore クライアントを初期化するときにリージョン エンドポイントを設定する方法を示しています。データが存在する場所以外のリージョン エンドポイントを設定すると、PermissionDeniedError エラーが発生する可能性があります。

Java

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 nam5-firestore.googleapis.com:443
            .setHost(endpoint)
            .build();
    Firestore dbWithEndpoint = firestoreOptions.getService();

    return dbWithEndpoint;
  }

}

Python

Firestore に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

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)

リージョン エンドポイントのセマンティクス

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

マルチリージョンとリージョンの各ホスト名の一覧については、Firestore のロケーションをご覧ください。

次のステップ