问题标签 [google-cloud-api-gateway]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1557 浏览

google-cloud-platform - 带有身份验证 yaml 配置文件部署错误的 Google 云 API 网关

我是 API Gateway 的新手,并试图在我的 API 上启用安全性。我按照我在互联网上找到的一些说明进行操作: https ://medium.com/swlh/manage-serverless-apis-with-api-gateway-in-gcp-b7f906efec1a

这是我的 YAML 文件:

在 API 网关配置中部署此配置文件时,我收到以下错误:

我不明白这个错误我应该在 YAML 文件中做些什么更改才能使其在部署时可以接受。

0 投票
2 回答
541 浏览

google-cloud-platform - API 网关不返回响应

我正在尝试使用 firebase 身份验证的 GCP API Gateway。我可以看到我的请求已从日志中处理并以响应代码 200 完成。但是,我没有将响应返回给我的客户。当我直接调用该函数时,我得到了响应。我错过了什么吗?

API 配置

功能

日志

日志

附加查询 最初,我的函数是私有的并且得到 403。一旦我添加到我试图调用的函数的权限,它给了我allUsers200 Cloud Functions Invoker。所以我在这里有点困惑。我使用 API 网关的部分原因firebase auth是为了保护它免受未经授权的调用。为了firebase auth工作,我必须添加allUsers,使其公开。我的理解是,API 网关本身就是公共的,而它调用的所有后端服务都是私有的。在这种情况下,任何人都可以直接调用该函数,从而导致 API Gateway 无用。如何将后端设置为私有并仅通过 API 网关响应经过身份验证的调用?

附加日志

0 投票
1 回答
642 浏览

google-cloud-platform - GCP API 网关:无法使用路径参数

我正在努力将路径参数从网关传递到实际端点。

这是我的开放 API yaml:

当我得到第一条路径时,它就起作用了。但在第二个路径中,有一个路径参数,我找不到将参数传递给我的 Cloud Run URL 的方法。在日志中,我看到 thishttps://path-to-my-cloud-run-service/v0/auth/users/type/%60type%60?type=email而不是https://path-to-my-cloud-run-service/v0/auth/users/type/email,这导致我的服务由于类型无效而被拒绝。

我需要在我的 yaml 中进行哪些更改才能使其正常工作?

我遇到的另一个问题是,如果我将 json 放入正文中,即使我指定它使用 application/json,GET 请求也会收到 400 个错误请求。

0 投票
0 回答
387 浏览

google-cloud-platform - Google Cloud API Gateway - 创建时“发生内部错误”

我正在为我的项目创建一个 GCP Cloud API Gateway资源。我创建了 API 并创建了 API 配置。我现在正在寻找创建网关本身。但是,当我运行网关创建命令时,出现以下错误:

gcloud beta api-gateway 网关创建 project-api-gateway --api=project-api --api-config=project-config --location=us-central1

等待使用 [projects/${MY_PROJECT}/locations/global/apis/project-api/configs/project-config] config...创建 API 网关 [project-api-gateway] 失败。错误:(gcloud.beta.api-gateway.gateways.create)发生内部错误

当我尝试通过云控制台执行此操作并通过 terraform 创建 API 网关时,也会发生同样的情况。有人知道这里出了什么问题吗?

API 和 API 配置是通过 terraform 创建的,但我相信等效的创建命令是:

gcloud beta api-gateway apis create project-api --project= gcloud beta api-gateway api-configs create project-config
--api=project-api --openapi-spec=swagger.yaml
--project= --backend- auth-service-account=SERVICE_ACCOUNT_EMAIL

编辑:根据要求,打开调试的命令运行(并略微编辑):

API 可以在http://www.filedropper.com/swagger_1找到

0 投票
1 回答
584 浏览

google-cloud-platform - Google Cloud Endpoints 与 Google API Gateway 之间的区别

我最近偶然发现了 GCP 的两种产品,但不确定如何区分它们。两者的产品描述总是听起来像是终极解决方案,但我找不到它们之间的真正区别。

https://cloud.google.com/endpointshttps://cloud.google.com/api-gateway

0 投票
2 回答
3042 浏览

google-cloud-platform - 带有 Google Kubernetes Engine (GKE) 的 Google Cloud API 网关

我正在寻找一个关于如何将 Google Cloud API Gateway 与托管在 GKE 中的微服务/API 一起使用的工作示例/教程。例如,当我尝试创建 API 网关并将其指向 GKE 上的现有 API 时,我收到以下错误:

后端 URL“http://35.xxx.xxx.xxx/legalentities”被禁止:无法通过 IP 地址路由请求。

0 投票
1 回答
63 浏览

google-cloud-platform - 安全的“hello world”谷歌云功能

我需要一个非常安全的云功能,所以我试图把它放在 API 网关后面。当我直接在标头中传递 Bearer 令牌时,该函数工作正常:

但是我想允许它通过 API 网关与 API 令牌一起使用(然后做一些比说“你好”更有用的事情):

当我尝试调用它时,我得到:

{ "code": 404, "message": "路径不匹配任何需求 URI 模板。" }

我的 API 网关配置文件:

少了什么东西?我究竟做错了什么?

0 投票
1 回答
738 浏览

google-cloud-platform - 使用 GCP API Gateway 前端具有私有入口的 Cloud Run 后端

我想将我的 Cloud Run 托管 API 与 API 网关放在前面,并且只允许从 API Gateway 访问 Cloud Run URL。

我目前有一个 API 部署到 Cloud Run 并启用了“公共”入口和授权。这可行,但是我很好奇是否可以将 Cloud Run 上的入口模型更改为“内部”,以完全避免将任何互联网流量路由到我的 Cloud Run 容器。

我知道 API Gateway 处于 Beta 版,内部入口的某些方面似乎也是 Beta 版——但是我很好奇是否有办法使这项工作。

根据ingress docs,似乎如果我能以某种方式使我的 API Gateway 请求来自 VPC 网络,则此设置应该可以工作,但是我无法找到在 API 网关端实现此目的的方法。

0 投票
1 回答
767 浏览

google-cloud-platform - Cloud Endpoint 和 API Gateway (GCP) 是否支持 Websocket?

想请教大家关于这些服务Cloud Endpoint和API Gateway(Beta)在谷歌云平台上的限制。这些服务都支持WebSocket协议吗?

因为我找不到关于它的文档官方参考。

据我所知,ESP 已经支持 WebSocket https://github.com/cloudendpoints/esp/blob/master/start_esp/start_esp.py#L535

但我还是一头雾水。可以在 OpenAPI 文档 (swagger 2) 上编写规则/配置吗?
我试图找到方法来做到这一点。许多人建议使用其他工具来制作它,例如 asyncapi。

那么 Cloud Endpoints 和 API Gateway (Beta) 是否支持 websocket 协议?

0 投票
1 回答
690 浏览

firebase-authentication - 具有 Firebase 身份验证的 GCP Api 网关

我正在尝试为我的 Cloud Run 托管容器设置 GCP Api 网关,但我收到了一些关于 Firebase 身份验证的错误。

在 api 规范中,我复制了 api gateway guide 中发布的内容

并在端点路径中添加了安全条目

当我通过 Api Gateway 发出请求时,一些额外的标头会添加到代理到 Cloud Run 服务的请求中,例如x-apigateway-api-userinfox-forwarded-authorizationauthorization

然后,在 Cloud Run 服务中,我必须使用 Firebase Admin sdk 来验证通过的令牌并识别发出请求的用户。这就是问题开始的地方,当我尝试验证此标头的任何令牌时,我收到一个错误:“FirebaseAuthError:解码 Firebase ID 令牌失败。确保您传递了代表 ID 令牌的整个字符串 JWT。”

我做错什么了吗?如何解码传递给 Api 网关的身份验证令牌?