GCP - 如何更新 API Gateway 中的 api 规范

Sau*_*abh 7 google-cloud-platform google-cloud-api-gateway

我创建了一个 API 网关并创建了一个与其关联的 API 配置,其中列出了一组 API。现在我想添加/修改一组API。如何更新此网关的相同 API 配置?

Luc*_*eck 12

我是使用 gcloud CLI 完成的。

首先使用更新的开放 api 规范文件创建一个新配置:

gcloud api-gateway api-configs create NEW_CONFIG_ID --api=MY_API --openapi-spec=openapi2-functions.yaml 
Run Code Online (Sandbox Code Playgroud)

然后使用新配置更新您的 api 网关:

gcloud api-gateway gateways update MY-GATEWAY --api=MY-API --api-config=NEW_CONFIG_ID --location=YOUR_LOCATION
Run Code Online (Sandbox Code Playgroud)


use*_*787 5

GCP文档提到您无法更新现有的 API 配置,只能更新其显示名称和标签,并且无法删除网关正在使用的现有 API 配置;这意味着如果您的配置文件已更改,您需要完全创建一个新的 API 配置。

我找到的解决方法是:

  1. 创建新的API 配置,指向网关:
gcloud api-gateway api-configs create NEW_CONFIG_ID --api=MY_API --openapi-spec=openapi2-functions.yaml 
gcloud api-gateway gateways update MY-GATEWAY --api=MY-API --api-config=NEW_CONFIG_ID --location=YOUR_LOCATION
Run Code Online (Sandbox Code Playgroud)
  1. 删除原来的配置:
gcloud api-gateway api-configs delete OLD_CONFIG_ID --api=MY_API
Run Code Online (Sandbox Code Playgroud)
  1. 使用原始配置的名称重新部署新的API 配置,使用更新的配置文件,指向网关:
gcloud api-gateway api-configs create OLD_CONFIG_ID --api=MY_API --openapi-spec=openapi2-functions.yaml 
gcloud api-gateway gateways update MY-GATEWAY --api=MY-API --api-config=OLD_CONFIG_ID --location=YOUR_LOCATION
Run Code Online (Sandbox Code Playgroud)
  1. 删除配置:
gcloud api-gateway api-configs delete NEW_CONFIG_ID --api=MY_API
Run Code Online (Sandbox Code Playgroud)

这是一个尴尬的解决方法,但它允许在网关中自动重新部署类似名称的 API 配置文件。