ゲートウェイへの API のデプロイ
前提条件
API Gateway に API 構成をデプロイする前に、以下を確認してください。
開発環境の構成の説明に従って、開発環境を準備済みである。
API 定義から API 構成を作成済みである。
Gateway ID の要件
以下に示す gcloud
コマンドの多くでは、GATEWAY_ID の形式でゲートウェイの ID を指定する必要があります。API Gateway では、ゲートウェイ ID に次の要件が適用されます。
- 値の最大長は 49 文字です。
- 使用できるのは小文字、数字、ダッシュのみです。
- ダッシュで始めることはできません。
- アンダースコアを含めることはできません。
デプロイされた API 構成のエンドポイントの定義
API 構成をゲートウェイにデプロイすると、API Gateway は gateway.dev
ドメインにゲートウェイの一意の URL を作成します。次に、API クライアントは、以下の形式の URL を使用して、デプロイされた API 構成にアクセスします。
https://GATEWAY_ID-HASH.REGION_CODE.gateway.dev
ここで、GATEWAY_ID はゲートウェイの名前、HASH は API のデプロイ時に生成された一意のハッシュコード、REGION_CODE は GCP リージョン(ゲートウェイをデプロイした場所)のコードです。
例:
https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev
ゲートウェイに API 構成をデプロイする
Google Cloud CLI を使用して、API 構成をゲートウェイにデプロイします。API 構成をデプロイする際には、API の名前を指定する必要があります。API 用のゲートウェイが存在しない場合は、このコマンドによって作成も行われます。
ゲートウェイに API 構成をデプロイするには:
次のコマンドで返されるプロジェクト ID を検証して、ゲートウェイが間違ったプロジェクト内に作成されないようにします。
gcloud config list project
デフォルト プロジェクトを変更する必要がある場合は、次のコマンドを実行します。このとき PROJECT_ID を、サービスを作成する Google Cloud プロジェクトの ID に置き換えます。
gcloud config set project PROJECT_ID
gateway create
コマンドのヘルプを表示します。gcloud api-gateway gateways create --help
次のコマンドを実行して、API 構成をゲートウェイにデプロイします。
gcloud api-gateway gateways create GATEWAY_ID \ --api=API_ID --api-config=CONFIG_ID \ --location=GCP_REGION --project=PROJECT_ID
ここで
- GATEWAY_ID は、新しいゲートウェイの ID を指定します。ゲートウェイが存在しない場合は、このコマンドによって作成されます。
- API_ID は、このゲートウェイに関連付けられた API Gateway API の ID を指定します。
- CONFIG_ID は、ゲートウェイにデプロイされた API 構成の ID を指定します。ゲートウェイの作成時に API 構成を指定する必要があります。
GCP_REGION は、デプロイされるゲートウェイの GCP リージョンを指定します。
PROJECT_ID には Google Cloud プロジェクト ID を指定します。
ゲートウェイの作成時に、
gcloud
がターミナルに情報を出力します。正常に完了したら、次のコマンドを使用してゲートウェイの詳細を表示できます。
gcloud api-gateway gateways describe GATEWAY_ID \ --location=GCP_REGION --project=PROJECT_ID
このコマンドを実行すると、次のようなフィード レスポンスが返されます。
apiConfig: projects/PROJECT_ID/locations/global/apis/API_ID/configs/CONFIG_ID createTime: '2020-02-05T13:44:12.997862831Z' defaultHostname: my-gateway-a12bcd345e67f89g0h.uc.gateway.dev displayName: GATEWAY_ID name: projects/PROJECT_ID/locations/GCP_REGION/gateways/GATEWAY_ID serviceAccount: email: gateway-111111@222222-tp.iam.gserviceaccount.com state: ACTIVE updateTime: '2020-02-05T13:45:00.844705087Z'
defaultHostname
プロパティの値をメモします。 これは、ゲートウェイ URL のホスト名の部分です。このゲートウェイにデプロイされた API 構成にアクセスするには、次の形式の URL を使用します。https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev
Google Cloud CLI には、gcloud リファレンスに記載されているオプションなど、多くのオプションがあります。さらに、API Gateway では、ゲートウェイの作成時に次のオプションを設定できます。
--async
: オペレーションの完了を待たずに、直ちに制御をターミナルに戻します。--display-name=NAME
: ゲートウェイの表示名、つまり、UI に表示される名前を指定します。名前にスペースを使用しないでください。代わりにハイフンとアンダースコアを使用してください。デフォルト値は GATEWAY_ID です。--labels=KEY1=VALUE1,KEY2=VALUE2,...
: ゲートウェイに関連付けられたラベルを指定します。
ゲートウェイの一覧表示
特定のプロジェクトのゲートウェイを一覧表示するには:
gcloud api-gateway gateways list --project=PROJECT_ID
このコマンドは、次の形式の出力を返します。
GATEWAY_ID LOCATION DISPLAY_NAME STATE CREATE_TIME UPDATE_TIME my-gateway us-central1 my-gateway ACTIVE 2021-01-07T00:04:19 2022-05-21T00:33:46
特定のプロジェクトとリージョンのゲートウェイを一覧表示するには:
gcloud api-gateway gateways list --location=GCP_REGION --project=PROJECT_ID
filter
式を使用して、特定の API に関連付けられているゲートウェイを一覧表示します。
gcloud api-gateway gateways list \ --filter="apiConfig:projects/PROJECT_ID/locations/global/apis/API_ID/*" \ --project=PROJECT_ID
または、この filter
を使用して、特定の API 構成のゲートウェイを一覧表示します。
gcloud api-gateway gateways list \ --filter="apiConfig:projects/PROJECT_ID/locations/global/apis/API_ID/configs/CONFIG_ID" \ --project=PROJECT_ID
プロジェクト ID、リージョン ID、ゲートウェイ ID を使用して、ゲートウェイにデプロイされた API 構成の ID など、ゲートウェイに関する詳細情報を取得します。
gcloud api-gateway gateways describe GATEWAY_ID \ --location=GCP_REGION --project=PROJECT_ID
ゲートウェイの更新
ゲートウェイを更新して、次のことを行います。
- ゲートウェイに別の API 構成をデプロイする
- 表示名を更新する
- ラベルを更新する
既存のゲートウェイを更新するには、次の gcloud
コマンドを使用します。ここで、UPDATE_OPTIONS は、更新するゲートウェイのオプション フラグと値に置き換えます。
gcloud api-gateway gateways update GATEWAY_ID \ UPDATE_OPTIONS --api=API_ID --location=GCP_REGION --project=PROJECT_ID
たとえば、ゲートウェイにデプロイされた API 構成を更新するには、次のようにします。
gcloud api-gateway gateways update GATEWAY_ID \ --api-config=NEW_CONFIG_ID --api=API_ID --location=GCP_REGION --project=PROJECT_ID
ここで、NEW_CONFIG_ID にはゲートウェイにデプロイする新しい API 構成を指定します。
使用可能な更新フラグと引数の一覧については、gcloud api-gateway ゲートウェイ更新 リファレンスを確認するか、次のコマンドを使用してすべての更新オプションを表示します。
gcloud api-gateway gateways update --help
ゲートウェイを削除する
既存のゲートウェイを削除するには、次の gcloud
コマンドを使用します。
gcloud api-gateway gateways delete GATEWAY_ID \ --location=GCP_REGION --project=PROJECT_ID