具有 Cloud Function Invoker 权限的 Cloud Function 获得 403 状态

Posted

技术标签:

【中文标题】具有 Cloud Function Invoker 权限的 Cloud Function 获得 403 状态【英文标题】:Cloud Function with Cloud Function Invoker rights gets 403 status 【发布时间】:2022-01-22 16:46:40 【问题描述】:

我有两个云函数:一个前端和一个 API。我已将frontend 服务帐户添加到具有Cloud Function Invoker 权限的前端云功能:

我还明确将此服务帐户添加为 API 云函数的权限,但我仍然收到403 Not Authorized 状态。

 const categories = await this.$axios.$get("/api/v1/categories/", 
    params:  hasParent: 0 ,
  );

【问题讨论】:

你能分享一段你从前端调用API的代码吗? @guillaumeblaquiere 添加了通话 【参考方案1】:

您必须添加授权标头才能使其工作!它不是开箱即用的!

但是,云函数文档很难解释这一点。请改用Cloud Run 文档(2 个服务使用相同的底层基础架构,原理相同,文档在 Cloud Run 上更易于使用!!)

【讨论】:

所以如果我理解正确,在从我的前端对我的 API 进行任何调用之前,我需要从 GCP 获取身份验证令牌? 是的。并将其添加为您的请求的标头。如果您的前端在 Cloud Functions 上运行,这并不难(如果您仍然无法从元数据服务器获取 TokenID,请分享您的代码)

以上是关于具有 Cloud Function Invoker 权限的 Cloud Function 获得 403 状态的主要内容,如果未能解决你的问题,请参考以下文章

无法从 GCP 调度程序调用 Google Cloud Function

Firebase Cloud Function 在 .get() 完成之前结束

如何使用 Cloud Function with Flutter 从新图像中获取 URL?

无法在安全的Google Cloud Function上获得CORS错误

Spring Cloud Function - 不同消费者的单独路由表达式

Dubbo负载均衡与集群容错