如果https://cloud.google.com/functions/docs/reference/iam/roles#standard-我看到的角色:
- roles/cloudfunctions.admin
- roles/cloudfunctions.developer
- 角色/cloudfunctions.viewer
- roles/cloudfunctions.invoker
后者只包含一个权限cloudfunctions.functions.invoke
我们正在使用谷歌云工作流来调用我们的云功能,其当前失败并出现错误:
"error": {
"code": 403,
"message": "Permission 'cloudfunctions.functions.call' denied on resource 'projects/redacted/locations/europe-west2/functions/funcname' (or resource may not exist).",
"status": "PERMISSION_DENIED"
}
我感到惊讶的是,给定有一个roles/cloudfunctions.invoker角色,而不是包含cloudfunctions.functions.call
的roles/ccloudfunctions.caller。roles/cloudfunctions.developer包括该权限,但也包括许多其他内容。为什么没有这样的角色?
是的,我知道我可以创建一个自定义角色,如果我不需要的话,那就太好了。
根据我对云功能的理解IAM权限:
CCD_ 3=>Call the callFunction API.
CCD_ 5=>Invoke an HTTP function via its public URL.
你提到";我们正在使用谷歌云工作流来调用我们的云功能";。。。不确定,但你可能是关于这个方法-projects.locations.functions.call。它在那个页面上说:";用于测试目的,因为允许非常有限的流量">
我不知道你的上下文和需求的所有细节,但你能使用它的URL调用云函数吗?
额外信息
您不能增加CALL配额。如果在生产中错误地使用此API调用函数,通常会出现配额不足的情况。请记住,此API用于通过云控制台或"gcloud函数调用CLI"进行测试,它无法处理大量流量。
https://cloud.google.com/functions/quotas#rate_limits