App Hub のリージョン エンドポイントを使用すると、トラフィックを特定のリージョンに直接転送して、データ所在地の要件を満たすことができます。これらのエンドポイントは、Google Cloud CLI、REST API、Terraform、クライアント ライブラリで構成できます。また、組織のポリシーを使用してグローバル エンドポイントの使用を制限することもできます。
リージョン エンドポイントとは
リージョン エンドポイントは、影響を受けるリソースがエンドポイントで指定されたロケーションに存在する場合にのみ、リクエストの続行を許可するリクエスト エンドポイントです。たとえば、リソースを管理するリクエストでエンドポイント https://apphub.us-central1.rep.googleapis.com を使用した場合、アプリケーションまたは登録済みコンポーネントが us-central1 にある場合にのみリクエストが処理されます。
リソースが存在する場所とは異なるロケーションでリクエストが処理される可能性があるグローバル エンドポイントとは異なり、リージョン エンドポイントは、エンドポイントで指定されたロケーション内でのみリクエストを処理します。リージョン エンドポイントは、インターネット、他の Google Cloud リソース(Compute Engine 仮想マシンなど)、VPN または Interconnect を使用したオンプレミス サービス、Virtual Private Cloud(VPC)から受信したリクエストに対して、エンドポイントで指定されたロケーションで TLS セッションを終端します。
リージョン エンドポイントは、アプリケーションのメタデータが保存中と転送中の両方で指定されたリージョン内に保持されるようにすることで、データ所在地をサポートします。
制限事項
リージョン エンドポイントを使用して、App Hub のグローバル リソース(グローバル アプリケーション、境界、サービス プロジェクト アタッチメント(SPA)、境界など)を管理することはできません。
リージョン エンドポイントを使用するこれらのグローバル リソースに関連する API リクエストは、API パスに /global/ ロケーションが含まれているため、失敗します。たとえば、リクエスト GET .../locations/global/applications/globalApp は拒否されます。
グローバル リソースを管理するには、標準のグローバル エンドポイント https://apphub.googleapis.com を使用します。
サポートされているロケーション
リージョン エンドポイントは、App Hub が利用可能なすべてのリージョン ロケーションで使用できます。サポートされているリージョンの一覧については、ロケーションをご覧ください。
リージョン エンドポイントを使用するためのツール
Google Cloud CLI を構成するか、リージョン エンドポイントを使用して直接 REST または RPC API リクエストを送信できます。
Google Cloud CLI
リージョン エンドポイントで使用できるように Google Cloud CLI を構成するには、次の操作を行います。
Google Cloud CLI バージョン
402.0.0以降を使用していることを確認します。api_endpoint_overrides/apphubプロパティを、使用するリージョン エンドポイントに設定します。gcloud config set api_endpoint_overrides/apphub https://apphub.LOCATION.rep.googleapis.com/LOCATIONは、サポート対象の地域(us-central1など)に置き換えます。
または、CLOUDSDK_API_ENDPOINT_OVERRIDES_APPHUB 環境変数をエンドポイントに設定します。
CLOUDSDK_API_ENDPOINT_OVERRIDES_APPHUB=https://apphub.LOCATION.rep.googleapis.com/
gcloud apphub applications list
REST API
リージョン エンドポイントにリクエストを送信するには、次の URI を使用します。LOCATION は、サポート対象の地域に置き換えます。
https://apphub.LOCATION.rep.googleapis.com
たとえば、次のエンドポイントを使用して、us-central1 リージョンの App Hub にアクセスできます。
https://apphub.us-central1.rep.googleapis.com
Terraform
Terraform でリージョン エンドポイントを使用するには、Google プロバイダ ブロックで App Hub エンドポイントをオーバーライドする必要があります。
リージョン エンドポイントをカスタム エンドポイントとして設定すると、Terraform を使用して google_apphub_service_project_attachment などのグローバル リソースを管理できなくなります。
provider "google" {
project = "project-id"
region = "us-central1"
# Override the App Hub API endpoint to use a regional endpoint
apphub_custom_endpoint = "https://apphub.us-central1.rep.googleapis.com/"
}
クライアント ライブラリ
クライアント ライブラリでリージョン エンドポイントを使用するには、クライアント オプションの api_endpoint プロパティをオーバーライドする必要があります。
次の例では、Python クライアント ライブラリを使用します。
from google.cloud import apphub_v1
from google.api_core import client_options
rep_endpoint = "apphub.us-central1.rep.googleapis.com"
options = client_options.ClientOptions(api_endpoint=rep_endpoint)
# Instantiate the client
client = apphub_v1.AppHubClient(client_options=options)
グローバル API エンドポイントの使用を制限する
リージョナル エンドポイントの使用を強制するには、constraints/gcp.restrictEndpointUsage 組織のポリシーの制約を使用して、グローバル API エンドポイントへのリクエストをブロックします。エンドポイントの使用を制限する方法については、エンドポイントの使用を制限するをご覧ください。