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

Sco*_*man 5 google-cloud-storage google-cloud-iam google-cloud-api-gateway

我正在构建一个大型 API,该 API 将使用 Google Cloud API Gateway 将各种端点路由到不同的服务 \xe2\x80\x93,其中一些可能是无服务器云功能,其他将由我们的 Kubernetes 中的 Rails 应用程序提供服务簇等。

\n

我们将选择需要客户端进行未经身份验证访问的信息端点,其中信息几乎不会每隔几个月更改一次 \xe2\x80\x93 。我希望将这些端点的内容写入 Google Cloud Storage(在一个世界无法读取的存储桶中),然后允许 API 网关配置将特定端点指向它们(一个世界可读的存储桶不会) t 满足该项目的安全标准)。

\n

我已经为 API 网关创建了一个自定义服务帐户,并为其指定了相关存储桶的存储对象查看者角色。

\n

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

\n

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

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

这是邮递员的回应:

\n

显示 Google 登录 HTML 的 Postman 屏幕截图

\n

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

\n

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

\n

gui*_*ere 1

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