微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Google Cloud API Gateway 端点如何从 Cloud Storage 文件传送数据?

如何解决Google Cloud API Gateway 端点如何从 Cloud Storage 文件传送数据?

我正在构建一个大型 API,该 API 将使用 Google Cloud API Gateway 将各种端点路由到不同的服务——有些可能是无服务器的 Cloud Functions,其他的将由我们 Kubernetes 集群中的 Rails 应用程序提供服务,以及以此类推。

我们将选择需要来自客户端的未经身份验证的访问的信息端点,其中的信息很少更改 - 作为大概每隔几个月一次。我希望将这些端点的内容写入谷歌云存储(在一个世界可读的存储桶中),然后允许 API 网关配置将特定端点指向它们(世界可读的存储桶不会满足此项目的安全标准)。

我为 API 网关创建了一个自定义服务帐户,并为相关存储桶赋予它存储对象查看者角色。

但是,在使用该服务帐户创建 API 配置并在 Postman 中请求端点后,我看到的是 Google 登录页面的 HTML,而不是我预期的 JSON 输出

我的 OpenAPI 配置中的端点定义:

paths:
  /products:
    get:
      x-google-backend:
        address: https://storage.cloud.google.com/<BUCKET_NAME>/products.json
      summary: List of products in JSON format
      operationId: listProductsJson
      produces:
        - application/json
      responses:
        "200":
          description: a product list
          schema:
            type: array
            items:
              $ref: '#/deFinitions/Product'

这是邮递员的回复

Postman screen grab showing Google login HTML

有没有办法让这个设置正常工作,甚至调试这里发生的事情?我看到人们对 Cloud Functions 和 JWT aud 值有类似的困扰,但遵循对他们有用的方法似乎对 Cloud Storage 没有任何影响。

任何帮助将不胜感激! (我是 GCloud 世界的新手,所以如果有人对这些主要是静态的端点有替代实现,那也很酷。)

解决方法

您没有使用正确的网址。使用 https://storage.googleapis.com/<BUCKET_NAME>/products.json 而不是 https://storage.cloud.google.com/<BUCKET_NAME>/products.json

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。