将 API 部署到网关

本页介绍了如何将 API 部署到 API Gateway。

前提条件

在将 API 部署到 API Gateway 之前,请确保您已完成以下操作:

网关 ID 要求

下面显示的许多 gcloud CLI 命令都要求您指定网关的 ID,格式为 GATEWAY_ID。API Gateway 对网关 ID 实施以下要求:

  • 长度不得超过 49 个字符。
  • 只能包含小写字母、数字或短划线。
  • 不能以短划线开头。
  • 不得包含下划线。

定义已部署的 API 配置的端点

将 API 配置部署到网关时,API Gateway 会在 gateway.dev 网域中为网关创建唯一的网址。然后,您的 API 客户端会使用以下形式的网址访问已部署的 API 配置:

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

其中,GATEWAY_ID 是网关的名称,HASH 是部署 API 时生成的唯一哈希代码,REGION_CODE 是部署网关的 Cloud 位置的代码。

例如:

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

将 API 部署到网关

如需将 API 部署到网关,请执行以下操作:

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往 API Gateway 页面。

    前往 API Gateway

  2. 点击 创建网关

    系统会显示创建网关页面。

  3. 选择 API 中,选择选择 API 字段中的创建新的 API
  4. 显示名称字段中,输入 API 的显示名称。
  5. API ID 字段中,输入 API 的 ID。请参阅 API ID 要求,了解 API 命名准则。
  6. (可选)为您的 API 添加标签。
  7. API 配置部分中,从选择配置字段中选择创建新的 API 配置
  8. 上传 API 规范字段中,上传 .yaml.json 文件。请参阅 OpenAPI 2.0 和 OpenAPI 3.x 文件格式的 API 定义。
  9. 显示名称字段中,输入 API 配置的显示名称。
  10. 选择服务账号列表中,选择所需的服务账号。API Gateway 将使用此服务账号作为其身份。
  11. (可选)为 API 配置添加标签。
  12. 网关详细信息部分中,输入网关的显示名称。
  13. 位置字段中,选择要部署网关的 Google Cloud 区域。
  14. (可选)为 API Gateway 添加标签。
  15. 点击创建网关
  16. 新创建的 API 会显示在 API Gateway 首页上。

Google Cloud CLI

  1. 验证下面的命令返回的项目 ID,以确保不会在错误的项目中创建网关。

    gcloud config list project

    如果需要更改默认项目,请运行以下命令并将 PROJECT_ID 替换为要在其中创建服务的 Google Cloud 项目 ID:

    gcloud config set project PROJECT_ID
  2. 查看 gateway create 命令的相关帮助:

    gcloud api-gateway gateways create --help
  3. 运行以下命令将 API 配置部署到网关:

    gcloud api-gateway gateways create GATEWAY_ID \
     --api=API_ID --api-config=CONFIG_ID \
     --location=GCP_REGION 

    其中:

    • GATEWAY_ID 指定新网关的 ID。如果网关尚不存在,则此命令将创建该网关。
    • API_ID 指定与此网关关联的 API Gateway API 的 ID。
    • CONFIG_ID 指定部署到该网关的 API 配置的 ID。您必须在创建网关时指定 API 配置。
    • GCP_REGION 指定已部署网关的云位置。

    在创建网关时,gcloud CLI 会将信息输出到终端。

  4. 完成后,您可以使用以下命令查看有关网关的详细信息:

    gcloud api-gateway gateways describe GATEWAY_ID \
     --location=GCP_REGION 

    此命令会返回以下内容:

    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 属性的值。这是网关网址的主机名部分。如需访问部署到此网关的 API 配置,请使用以下形式的网址:

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

gcloud CLI 接受许多选项,包括 gcloud 参考中所述的选项。此外,对于 API Gateway,您可以在创建网关时设置以下选项:

  • --async:立即将控制权归还给终端,而不等待操作完成。
  • --display-name=NAME:指定网关的显示名称,即界面中显示的名称。请勿在名称中使用空格。请改用连字符和下划线。默认值为 GATEWAY_ID
  • --labels=KEY1=VALUE1,KEY2=VALUE2,...:指定与网关关联的标签。

列出网关

本部分介绍如何查看 Google Cloud 项目中部署的所有 API 网关的列表。

Google Cloud 控制台

在 Google Cloud 控制台中,依次前往 API Gateway > 网关页面。

前往“网关”

Google Cloud CLI

如需列出特定项目的网关,请运行以下命令:

gcloud api-gateway gateways list 

此命令以如下形式返回输出:

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 

使用 filter 表达式列出与特定 API 关联的网关:

gcloud api-gateway gateways list \
--filter="apiConfig:projects/PROJECT_ID/locations/global/apis/API_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 获取有关网关的详细信息,包括部署到网关的 API 配置的身份:

gcloud api-gateway gateways describe GATEWAY_ID \
--location=GCP_REGION 

更新网关

更新网关以执行以下操作:

  • 将其他 API 配置部署到网关
  • 更新显示名称
  • 更新标签

Google Cloud 控制台

请按照以下步骤更新 API 网关详细信息:

  1. 在 Google Cloud 控制台中,前往 API Gateway 页面。

    前往 API Gateway

  2. 点击所需的 API。
  3. 点击网关标签页。
  4. 点击所需的网关。
  5. 依次点击修改 修改
  6. 修改显示名称标签
  7. 选择所需的 API 配置,或点击创建新的 API 配置,然后按照 此处所示创建配置。
  8. 点击更新
  9. 点击 返回到网关列表页面。
  10. 在网关列表页面上,您可以查看更新后的网关。

Google Cloud CLI

使用以下 gcloud CLI 命令更新现有网关,其中 UPDATE_OPTIONS 替换为要更新的网关选项标志和值:

gcloud api-gateway gateways update GATEWAY_ID \
UPDATE_OPTIONS --api=API_ID --location=GCP_REGION   

例如,如需更新部署到网关的 API 配置,请运行以下命令:

gcloud api-gateway gateways update GATEWAY_ID \
--api-config=NEW_CONFIG_ID --api=API_ID --location=GCP_REGION 

其中,NEW_CONFIG_ID 指定要部署到网关的新 API 配置。

如需查看可用的更新标志和实参的完整列表,请参阅 gcloud api-gateway gateways update 参考,或使用以下命令查看所有更新选项:

gcloud api-gateway gateways update --help

删除网关

本部分介绍了如何删除现有 API 网关。请按照以下步骤从 Google Cloud 项目中永久移除网关及其关联的配置。

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,依次前往 API Gateway > 网关页面。

    前往“网关”

  2. 点击更多图标 ,然后点击删除以删除所选的 API 网关。

Google Cloud CLI

使用以下 gcloud CLI 命令删除现有网关:

gcloud api-gateway gateways delete GATEWAY_ID \
--location=GCP_REGION 

后续步骤