ロケーション エンドポイントを使用してデータの局所性を構成する
このページでは、ロケーション エンドポイントを使用するように Firestore クライアント ライブラリを構成する方法について説明します。
Firestore クライアント ライブラリを使用する場合、次のいずれかのエンドポイントを使用できます。
グローバル エンドポイント: デフォルトでは、Firestore クライアント ライブラリは、
firestore.googleapis.com
という名前のグローバル サービス エンドポイントに API リクエストを送信します。グローバル サービス エンドポイントがリクエストをデータベースにルーティングします。ルーティング中に、リクエストがデータベースのロケーションとは異なるロケーションのロケーション サービス エンドポイントを通過する場合があります。ロケーション エンドポイント: ロケーション エンドポイントにはリージョンの制約が適用されます。これにより、データが指定されたリージョンに保存され、処理されることが保証されます。サービス エンドポイントがデータベースと同じリージョンの アプリの Firestore リクエストを処理するには、クライアント ライブラリでロケーション エンドポイントを指定します。
ロケーション エンドポイントを設定する
次の例は、Firestore クライアントを初期化するときにロケーション エンドポイントを設定する方法を示しています。データが存在する場所以外のロケーション エンドポイントを設定すると、PermissionDeniedError
エラーが発生する可能性があります。
Java
Firestore に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Firestore に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
ロケーション エンドポイントのセマンティクス
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 のロケーションをご覧ください。
グローバル API エンドポイントの使用を制限する
リージョナル エンドポイントの使用を強制するには、constraints/gcp.restrictEndpointUsage
組織のポリシーの制約を使用して、グローバル API エンドポイントへのリクエストをブロックします。詳細については、エンドポイントの使用の制限をご覧ください。
次のステップ
- Firestore のデータモデルについて学習する
- Firestore の使用に関するベスト プラクティス。