firebase - 部署计划的云功能需要哪些服务帐户角色?
问题描述
为了部署我的 Firebase 项目,我设置了一个具有以下角色的服务帐户:
- 云功能管理员
- 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”时,它可以工作!
我被误导了,因为我已经将此角色设置为服务帐户但在另一个项目中,并且它不会传播!以牺牲一个美好的下午为代价的教训。
解决方案
答案是:添加角色“Cloud Scheduler Admin”。
问题是:在一个项目中设置为服务帐户的角色不会传播到其他项目中的同一服务帐户。
很好的教训是:添加--debug
以查看其他日志,包括缺少的权限,谢谢@Dharmaraj
推荐阅读
- python - 将 django loader.render_to_string() 转换为用于 sendgrid 的烧瓶
- git - 卸载和安装 Homebrew 时出现 Git 错误
- go - 如何漂亮地打印 Golang 结构?
- c# - 无法运行 db2 查询?
- powerbi - 在复制行时用 DATE 值和计数值转置表
- google-apps-script - 为什么谷歌应用脚本触发器会发送重复的电子邮件?
- sql - SQL 查询不输出结果
- c# - 不强制转换返回类型的单元测试 IHttpActionResult
- git - 如何在一行的分支之间传输提交
- ruby-on-rails - Sidekiq,线程用完 - Rails 离开而不是收获 connection_pool 线程