首页 > 解决方案 > 部署计划的云功能需要哪些服务帐户角色?

问题描述

为了部署我的 Firebase 项目,我设置了一个具有以下角色的服务帐户:

它适用于由 Firestore 或 HTTPS 触发的托管和云功能,但它会因按计划执行功能而失败。

我还需要什么额外的角色?

编辑:唯一相关的输出消息是:

i  functions: updating Node.js 14 function schedule-statistics(europe-west3)...
...
✔  functions[schedule-statistics(europe-west3)]: Successful update operation. 
...
 Functions deploy had errors with the following functions:
    schedule-statistics(europe-west3)

编辑:附加测试:在我的机器上使用我登录的 CLI 进行部署时,我看到这条附加消息,使用服务帐户部署时缺少该消息:

✔  functions[schedule-statistics(europe-west3)]: Successful upsert schedule operation.

编辑:通过按照@Dharmaraj 的建议添加日志,我可以看到缺少的权限:

The principal (user or service account) lacks IAM permission \"cloudscheduler.jobs.get\"
...
The principal (user or service account) lacks IAM permission \"cloudscheduler.jobs.update\"

因此,当添加“Cloud Scheduler Admin”时,它可以工作!

我被误导了,因为我已经将此角色设置为服务帐户但在另一个项目中,并且它不会传播!以牺牲一个美好的下午为代价的教训。

标签: firebasegcp-iam

解决方案


答案是:添加角色“Cloud Scheduler Admin”。
问题是:在一个项目中设置为服务帐户的角色不会传播到其他项目中的同一服务帐户。
很好的教训是:添加--debug以查看其他日志,包括缺少的权限,谢谢@Dharmaraj


推荐阅读