API Gateway への Cloud Endpoints API のデプロイ

Cloud Endpoints は、API の保護、モニタリング、分析、割り当て量の設定を行えるようにする API 管理システムです。Endpoints は API をホストするために Extensible Service Proxy(ESP)または Extensible Service Proxy V2 ベータ版(ESPv2 ベータ版)を使用します。

Endpoints を使用する場合、API の定義方法には 3 つのオプションがあります。

API Gateway を使用した API の開発

API Gateway は、OpenAPI 仕様のバージョン 2.0 を使用して記述された API をサポートします。つまり、API Gateway の Endpoints から OpenAPI 仕様をデプロイできます。

API Gateway への Endpoints OpenAPI 仕様のデプロイ

API Gateway は、Cloud Endpoints for OpenAPI でサポートされているものと同じ OpenAPI の仕様の定義形式とオプションをサポートします。つまり、Endpoints OpenAPI 仕様と同じセキュリティ、割り当て、その他の定義を使用して、API Gateway で API を定義できます。

Endpoints と API Gateway の違いは、OpenAPI 仕様定義内の host プロパティの処理方法のみです。

  • Endpoints で、host プロパティを ESP のデプロイ時に作成された URL のホスト名の部分に設定します。ここで、ESP は Endpoints API をホストするために使用するサービスです。
  • API Gateway で、host を省略するか、デプロイされた API の DNS 名に設定します。API プロバイダは、OpenAPI 仕様を API コンシューマと共有するときに、これを DNS 名に設定することがよくあります。ただし、API Gateway には host プロパティの値は適用されません。

たとえば、以下に、Cloud Functions にデプロイされたバックエンド サービスにアクセスする API を定義するために Endpoints で使用される OpenAPI 仕様の一部を示します。

swagger: '2.0'
info:
  title: Cloud Endpoints + GCF
  description: Sample API on Cloud Endpoints with a Google Cloud Functions backend
  version: 1.0.0
host: ESP_HOST
schemes:
  - https
produces:
  - application/json
paths:
  /hello:
  ...

Endpoints の場合:

  1. ESP をデプロイします。これにより、ESP にデプロイされた API へのアクセスに使用する URL が作成されます。次に例を示します。

    https://gateway-12345-uc.a.run.app
  2. OpenAPI 仕様を編集して、host プロパティを ESP URL のドメイン名に設定します。次に例を示します。

    host: gateway-12345-uc.a.run.app
  3. OpenAPI 仕様を ESP にデプロイします。

  4. ESP URL を使用して API にアクセスします。上記の OpenAPI 仕様では、次の URL を使用してこの API にアクセスできるように、paths 要素が /hello に設定されています。

    https://gateway-12345-uc.a.run.app/hello

ご覧のように、Endpoints では、最初に ESP をデプロイして host プロパティの値を設定可能にする必要があります。

この API 定義を使用して API Gateway の API 構成を作成するには、host プロパティを完全に削除するか、ファイルに残します。API Gateway では host プロパティの値は適用されません。

デプロイされたゲートウェイの URL、つまりクライアントが API へのアクセスに使用する URL は、ゲートウェイの作成時に次の形式で定義されます。

https://GATEWAY_ID-HASH.REGION_CODE.gateway.dev

ここで、GATEWAY_ID はゲートウェイの名前、HASH は API のデプロイ時に生成された一意のハッシュコード、REGION_CODEGCP リージョン(ゲートウェイをデプロイした場所)のコードです。

ゲートウェイ インスタンスに API をデプロイすると、/hello へのアクセスに使用する URL は次のようになります。

https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev/hello

API のデプロイの詳細については、API Gateway のデプロイモデルをご覧ください。

API 定義用の OpenAPI 仕様の作成について詳しくは、OpenAPI の概要をご覧ください。

次のステップ