我正在关注https://cloud.google.com/scheduler/docs/start-and-stop-compute-engine-instances-on-a-schedule。测试云函数时,出现错误信息:
Error: Required 'compute.instances.list' permission for 'projects/thorstenstaerk-cert' at Function.parseHttpError (/workspace/node_modules/google-gax/build/src/googleError.js:59:37) at decodeResponse (/workspace/node_modules/google-gax/build/src/fallbackRest.js:72:49) at Promise.all.then (/workspace/node_modules/google-gax/build/src/fallbackServiceStub.js:90:42) at process._tickCallback (internal/process/next_tick.js:68:7)
现在,我记得我必须将此权限授予 Cloud Functions 的默认服务帐户,但我在哪里可以找到它?它不在 IAM 中。
答案1
我的问题已得到解决https://cloud.google.com/functions/docs/securing/function-identity。
当我使用第一代云功能时,它是这样的:
- 记下你的项目 ID。这不是数字,而是你的项目所具有的唯一字符串,例如托尔斯滕项目
- 进入 IAM,添加主体托尔斯滕项目@appspot.gserviceaccount.com,授予他们 Compute Engine -> Compute Admin 角色。对于生产,您可能需要使用自定义角色。
现在云功能对我有用了。