API がデプロイされた後、API のユーザーは、IP アドレスではなくドメイン名を使って API にアクセスする必要があります。次のことが可能です。
- ドメイン名として
.endpoints.PROJECT_ID.cloud.goog
を構成します(PROJECT_ID
は実際の Google Cloud プロジェクト ID)。 - 独自のドメイン名(例:
example.com
)を登録します。これには以下の手順が必要です。- DNS ネームサーバーを構成する(または Cloud DNS を使用する)。
- レジストリ アドレスを更新する。
- DNS レコードを作成し、維持する。
すでに DNS インフラストラクチャがある場合や、独自のドメイン名を登録する場合は、独自のドメイン名から API を提供するで詳細をご覧ください。
このページでは、ドメイン名として .endpoints.PROJECT_ID.cloud.goog
を使用するように Cloud Endpoints API を構成する方法について説明します。このページの構成手順は、gRPC を使用し、Compute Engine、Kubernetes Engine、Kubernetes で実行されている API に適用できます。
.cloud.goog
ドメインは Google が管理し、Google Cloud のお客様と共有します。Google Cloud プロジェクトには必ずグローバルに一意のプロジェクト ID が割り当てられるので、.endpoints.PROJECT_ID.cloud.goog
形式のドメイン名は一意になり、API のドメイン名として使用できます。.endpoints.PROJECT_ID.cloud.goog
ドメイン名の構成はオプションです。必要に応じて、独自のドメイン名を登録できます。
要件
このページでは、Cloud Endpoints API をすでに作成して Compute Engine、Google Kubernetes Engine、Kubernetes にデプロイ済みであることを前提としています。テスト用の API が必要な場合は、サンプル API の構成およびデプロイ方法を示すチュートリアルのいずれかを使用してください。
DNS の構成
以下の手順では、.endpoints.PROJECT_ID.cloud.goog
を Endpoints サービス名として使用する Endpoints API の DNS を構成します。便宜上、この手順では gRPC サービス構成ファイルを service.yaml
とします。
DNS を構成するには:
service.yaml
を開きます。次のコード スニペットに示すように、endpoints
フィールドをファイルに追加します。type: google.api.Service name: API_NAME.endpoints.PROJECT_ID.cloud.goog endpoints: - name: API_NAME.endpoints.PROJECT_ID.cloud.goog target: "IP_ADDRESS"
通常、
name
フィールドとendpoints.name
フィールドは同じです。API_NAME
は API の名前(bookstore
、my-cool-api
など)で置き換えます。IP_ADDRESS
を IPv4 アドレスに置き換えます。IP アドレスは文字列であり、引用符で囲む必要があります。Endpoints API サービスを Compute Engine 仮想マシン インスタンスにデプロイする場合は、その仮想マシンの外部 IP アドレスを使用できます。また、ロードバランサの背後にある仮想マシン インスタンス(または GKE ポッド)のグループでコードを実行する場合、ロードバランサの IP アドレスを使用できます。
- 次のコマンドを使用して、更新した gRPC 構成ファイルを Service Management にデプロイします。
gcloud endpoints services deploy service.yaml service.pb
たとえば、service.yaml
ファイルで次のように指定されているとします。
type: google.api.Service name: my-cool-api.endpoints.my-project-id.cloud.goog endpoints: - name: my-cool-api.endpoints.my-project-id.cloud.goog target: "192.0.2.1"
前述の gcloud
コマンドで service.yaml
ファイルをデプロイすると、Service Management はターゲット IP アドレス 192.0.2.1
に解決される DNS A レコード my-cool-api.endpoints.my-project-id.cloud.goog
を作成します。新しい DNS 構成が反映されるまでに数分かかる場合があります。