通过 API Key 访问 Google Cloud Function

问题描述

我从我的 ML 模型创建了一个 Google Cloud 函数。它与函数的 GCP 站点上的谷歌“测试”配合良好:

测试截图

img_testing

该函数托管了 2 次,一次通过身份验证 (Google IAM),第二次未通过身份验证

认证方式

img_auth

如果我现在想调用该函数,例如在邮递员中,没有身份验证的版本工作正常。 但是有了身份验证,就无法弄清楚如何实现这一点。

如何使用受限 API 密钥访问云功能?`

解决方法

您无法直接使用 API 密钥调用您的函数。您需要实现一个代理层来检查您的 API 密钥并使用 OAuth2 授予的身份令牌执行请求。为此,您可以使用 Cloud Endpoint 或其全新的无服务器实现 API Gateway。我wrote an article on Cloud Endpoint,您可以在 API Gateway 上重复使用它。

如果仅用于 Postman 和您的测试,您可以使用 GCLOUD CLI 生成令牌

gcloud auth print-identity-token

复制结果并将其添加到请求的标题中

Authorization: Bearer <token>

对 1H 有效。执行您的测试,当它过期时,生成一个新的并继续。

我也wrote a small tool for this。使用 Postman 执行预调用以获取令牌,然后如前所述在您的请求中使用它

,

要使用 postman 对云函数进行身份验证调用,您需要 jwt_token。

  1. 首先创建服务帐号
  2. 授予 Cloud 函数调用者访问此 SA 的权限
  3. 生成 JWT
memcpy()

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...