リージョン エンドポイントの構成

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 を構成するには、次の操作を行います。

  1. Google Cloud CLI バージョン 402.0.0 以降を使用していることを確認します。

  2. 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 エンドポイントへのリクエストをブロックします。エンドポイントの使用を制限する方法については、エンドポイントの使用を制限するをご覧ください。