问题标签 [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 回答
524 浏览

google-cloud-functions - GCP API Gateway 到 Cloud Functions 默认服务帐户身份验证:“您的客户端无权访问请求的 URL”“

我正在尝试在 Cloud Functions 前面使用 API Gateway,但是当 Cloud Functions 不可公开访问时会收到 401 响应。

我将网关设置为使用默认 AppEngine 服务帐户身份 ( project-id @appspot.gserviceaccount.com),并在 IAM 中为服务帐户赋予Cloud Functions Invoker角色。我还可以在 Cloud Functions Permissions 选项卡下的调用程序中看到它。调用网关端点时,我收到一个 401 响应,其中包含格式错误的 HTML 有效负载,显示“您的客户端无权访问请求的 URL [url]”。不幸的是,网关日志也没有指出问题所在。当我公开 Cloud Function 并等待几分钟时,调用成功。

我已阅读指南的“保护后端服务”部分几次,但看不到我遗漏了什么。

ps:这不是智威汤逊问题,那部分效果很好

0 投票
1 回答
445 浏览

api - 使用 API 网关保护云功能

我的目标是防止用户使用 API 密钥和 API 网关访问我的云功能端点。我已经成功部署了 API 网关;但是,每个云功能的原始端点仍然存在并且可供公众访问。我想让云功能端点私有,同时让 api 网关端点公开,但我不知道如何实现这一点。任何建议都会很棒。

0 投票
1 回答
748 浏览

google-app-engine - Google Cloud Api Gateway - {"message":"no healthy upstream","code":503}

我正在构建一个托管在 App Engine Standard (Python) 上的 api。

我已经用 curl 对其进行了测试,并且能够成功发出发布请求:

然后我部署了一个 Api Gateway 来访问我的 App Engine Standard 后端。

API Gateway 和 App Engine 入门

我进行了测试,它对 GET 请求运行良好。

现在我在执行 POST 请求时遇到问题。这是我的config.yaml文件中的代码:

当我尝试运行相同的 curl 命令时:

我收到 :

有人可以帮我解决此错误消息吗?同样,我能够在同一个网关上成功运行 GET 请求。

这是我在 Logging 上找到的日志:

0 投票
1 回答
196 浏览

api - Google API 网关 Cors 标头使用选项请求

在我的应用引擎实例前面实现了一个 api 网关后,我遇到了一个问题,指出请求由于 CORS 标头而被阻止。在线搜索后,我发现 API 网关没有提供设置 CORS 策略的方法,但是它也“覆盖”了我的单个后端应用程序发送的标头。我是否需要实现负载均衡器来设置额外的 Header 或者有办法避免覆盖?

API 示例:

0 投票
1 回答
458 浏览

google-cloud-platform - API 网关请求 API 限制 Google Cloud

我可以限制我的 API Gateway 请求限制吗?

例如具有如下路径的 URL A:

aaaaaaaa.com/predict

我将 URL A 设置为每天只能请求 1000 个,并且相同的 URL 具有另一个路径,如下所示:

aaaaaaaa.com/calling

/calling每天只能申请 500 个

那么,我可以设置一个请求有限的路径吗?

0 投票
1 回答
517 浏览

google-cloud-platform - GCP:API-Gateway Cors 问题并添加自定义身份验证

我已经配置了 API-Gateway 来调用 Cloud Function,我们还为这个 API-Gateway 主机配置了负载均衡器。但是当我们从我们的 Web 应用程序调用这个负载均衡器端点时,我们面临着 CORS 问题。

问题 1:请指导我如何在 API config open-api YAML 文件中添加 CORS 支持。问题 2:如何在这个 open-api 配置 YAML 文件中添加自定义身份验证端点?

高级流程:webapp --> 负载均衡器 url --> API-Gateway --> CloudFunction

我已根据 GCP 链接在云功能中添加了 CORS 后端支持:https ://cloud.google.com/functions/docs/writing/http#authentication_and_cors

云函数代码如下:

以下开放 API 规范:

浏览器报错如下:

提前致谢

0 投票
2 回答
70 浏览

firebase - 在 Google Cloud 上自动生成 API 密钥

我们目前正在开发基于 Google Cloud Functions 的 API 以及 Google 的 API Gateway。

由于每个购买我们 API 访问权限的客户都应该获得自己的 API 密钥,我想知道是否有一种方法可以使用 API 创建这些 API 密钥。我想要实现的是客户能够在自己的设置中请求 API 密钥,所以单击一个按钮,这会触发一个功能,生成一个密钥并将其显示给前端的客户。

在搜索了相当长的一段时间后,我没有找到任何关于如何构建它的信息。也可能是我的处理方法完全错误 - 如果是这种情况,请烤我并给我一些建议!

提前感谢您的回答!

0 投票
1 回答
293 浏览

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

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

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

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

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

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

这是邮递员的回应:

显示 Google 登录 HTML 的 Postman 屏幕抓取

有没有办法让这个设置工作,甚至调试这里发生的事情?我已经看到人们在 Cloud Functions 和 JWTaud价值方面存在类似的问题,但遵循对他们有用的方法似乎对 Cloud Storage 没有任何影响。

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

0 投票
0 回答
77 浏览

c# - 在 Cloud Talent Solution 上查询列表作业时出现无效过滤器错误

我正在按照此处列出的示例列出工作: https ://cloud.google.com/talent-solution/job-search/docs/jobs#list_jobs

我收到的错误是:

Status(StatusCode="InvalidArgument", Detail="Invalid filter: count(base_compensation, [bucket(12, 20)])。跟踪请求 ID:d3e16e3c-a103-48eb-8970-1d3f9228e825:APAb7ISxs+hMPVsQYxAL/Pe7jH+FNIlvBA ==", DebugException="Grpc.Core.Internal.CoreErrorDetailException: {"created":"@1619001587.481000000","description":"从对等 ipv4:172.217.170.10:443 收到错误","file":"T: \src\github\grpc\workspace_csharp_ext_windows_x64\src\core\lib\surface\call.cc","file_line":1062,"grpc_message":"无效过滤器:count(base_compensation, [bucket(12, 20)])。跟踪请求 ID:d3e16e3c-a103-48eb-8970-1d3f9228e825:APAb7ISxs+hMPVsQYxAL/Pe7jH+FNIlvBA==","grpc_status":3}")

我对如何创建过滤器进行了进一步研究,然后我尝试使用这篇文章创建自己的位置过滤器: https ://cloud.google.com/talent-solution/job-search/docs/reference/rest/v4/JobQuery #locationfilter

我创建了一个简单的类来表示他们的 Json 对象:

然后使用 JsonConvert 将我的对象序列化为 Json:

但我得到了与演示过滤器相同的异常。

这是我用来在 C# 中列出作业的代码:

有人可以告诉我我做错了什么吗?

0 投票
1 回答
67 浏览

ruby - Ruby 的谷歌云视觉 API 示例

我正在使用 google-cloud-ruby 客户端库,我没有看到与当前 google cloud vision API 实现相关的任何示例。我应该从哪里查看用于 ruby​​ 客户端库的谷歌云视觉 API 的代码示例。