从计算引擎调用云函数



我正试图从运行在计算引擎实例上的节点服务器调用HTTP触发的云函数。我已经将计算引擎的服务帐户设置为上述函数的调用者,并且作为计算引擎实例的两个函数都在同一个VPC网络上运行。然而,每次尝试从节点服务器调用函数时,我都会收到默认的403 Forbidden错误。但是,如果我将Cloud函数中的调用规则设置为"allUsers",则调用成功。

编辑:我正在docker容器上运行节点服务器。

有什么想法吗?

提前非常感谢。

编辑(解决方案(:

所以我一直在寻找的解决方案在这里解释。尽管上面链接指向的示例代码可能会对某人有所帮助,但我发现遵循本指南(服务帐户JSON证书(更有用,该指南指向可以用于获取在向函数的请求中提供的OIDC令牌的代码(请记住,创建令牌时的受众必须设置为函数的url(。

有了上述OIDC令牌,可以使用普通的HTTP请求调用云函数,只需传递以下格式的头Authorization:Authorization:Bearer{OIDC令牌}。

请随意发布任何关于这方面的问题,我会尽力回答所有问题。再次感谢petomalina为我们指明了正确的方向。

如果同时调用函数到函数或服务到函数,例如从无法访问计算元数据的计算实例中调用,则需要一个自签名JWT。

请参阅此文档了解服务功能:https://cloud.google.com/functions/docs/securing/authenticating#service-以运行

这里还有一个关于编程身份验证的示例:https://cloud.google.com/iap/docs/authentication-howto#authenticating_from_a_service_account

最新更新