Google cloud platform 用于计算引擎的gcpapi网关

Google cloud platform 用于计算引擎的gcpapi网关,google-cloud-platform,google-compute-engine,google-vpc,google-api-gateway,Google Cloud Platform,Google Compute Engine,Google Vpc,Google Api Gateway,我在api网关营销页面上找到了以下代码片段。 所以我正在为运行在计算引擎上的应用程序设置API网关。由于我找不到任何关于如何在API引擎上配置计算引擎的文档,我使用内部DNS创建了以下配置 当我使用部署配置时,出现以下错误 正在等待为API创建API配置[my-API-Config-v6] [我的api]…失败。 错误:(gcloud.beta.api网关.api配置.create)等待服务 配置创建:后端URL "http://my_internal_dns_for_compute_engi

我在api网关营销页面上找到了以下代码片段。

所以我正在为运行在计算引擎上的应用程序设置API网关。由于我找不到任何关于如何在API引擎上配置计算引擎的文档,我使用内部DNS创建了以下配置

当我使用部署配置时,出现以下错误

正在等待为API创建API配置[my-API-Config-v6] [我的api]…失败。
错误:(gcloud.beta.api网关.api配置.create)等待服务 配置创建:后端URL "http://my_internal_dns_for_compute_engine.c.myproject.internal/indexes”“是吗 禁止:无法将请求路由到内部地址

所以看起来不支持内部DNS(显然)


我的计算引擎实例只能通过VPC网络访问。如何将我的api网关连接到VPC网络,如何通过它访问我的计算引擎?

今天,你无法实现这一点。您的API网关是一个无服务器服务,您不能在其上插入服务器。我已经和谷歌讨论过这个问题(因为云调度器、云任务和PubSub推送订阅都有同样的问题),不久就会有事情发生。请继续收看

无论如何,现在要解决您的问题,您有两个解决方案(至少一个是肯定的,另一个是要测试的)

  • 第一个(当然)解决方案是有一个“代理”。另一个具有公共访问权限的计算引擎,或具有无服务器VPC连接器的云功能/云运行/应用程序引擎服务。云功能/云运行/应用引擎更好,因为您可以使用IAM保护访问(无公共访问)
  • 第二个(要测试的)解决方案是部署,而不是使用API网关。事实上,就目前而言,API网关是一个云上运行的ESPv2托管解决方案。如果您在Cloud Run上插入一个无服务器VPC连接器,它应该可以工作。我写了用法。如果我有时间,我将用无服务器VPC连接器测试它,并让您知道。否则,你可以试一下

编辑1


我已经测试了第二个解决方案,它使用的是内部IP(以及部署了ESPv2的云运行端点服务上的无服务器VPC连接器),而不是内部DNS名称。

今天,您无法实现这一点。您的API网关是一个无服务器服务,您不能在其上插入服务器。我已经和谷歌讨论过这个问题(因为云调度器、云任务和PubSub推送订阅都有同样的问题),不久就会有事情发生。请继续收看

无论如何,现在要解决您的问题,您有两个解决方案(至少一个是肯定的,另一个是要测试的)

  • 第一个(当然)解决方案是有一个“代理”。另一个具有公共访问权限的计算引擎,或具有无服务器VPC连接器的云功能/云运行/应用程序引擎服务。云功能/云运行/应用引擎更好,因为您可以使用IAM保护访问(无公共访问)
  • 第二个(要测试的)解决方案是部署,而不是使用API网关。事实上,就目前而言,API网关是一个云上运行的ESPv2托管解决方案。如果您在Cloud Run上插入一个无服务器VPC连接器,它应该可以工作。我写了用法。如果我有时间,我将用无服务器VPC连接器测试它,并让您知道。否则,你可以试一下

编辑1

我已经测试了第二个解决方案,它使用的是内部IP(以及部署了ESPv2的云运行端点服务上的无服务器VPC连接器),而不是内部DNS名称

swagger: "2.0"
info:
  title: API Endpoints
  description: API Endpoints
  version: 1.0.1
schemes:
  - https
produces:
  - application/json
paths:
  /indexes:
    get:
      summary: Return Search Indexes
      operationId: searchIndexes
      x-google-backend:
        address: http://my_internal_dns_for_compute_engine.c.myproject.internal/indexes
        path_translation: APPEND_PATH_TO_ADDRESS
      responses:
        "200":
          description: A successful response
          schema:
            type: string
        "403":
          description: Failed to authenticate