部署 Gen2 Cloud Function 时出现权限被拒绝错误

use*_*472 3 google-cloud-platform google-cloud-functions google-cloud-run

我们根据给定的需求开发了云功能,并使用第一代进行了初步验证,一切顺利。但需要进行的修改很少,因此需要额外的处理时间。因此我们必须切换到--gen2

以下是 gcloud 函数部署命令。

gcloud functions deploy gen2-function \
    --entry-point gen2 --runtime python37 --trigger-http --allow-unauthenticated \
    --service-account=<> --region=<> --project=<> --timeout=3600s --gen2
Run Code Online (Sandbox Code Playgroud)

此命令成功部署了功能和内部云运行服务,但最终失败并出现以下错误

[INFO] A new revision will be deployed serving with 100% traffic.
ERROR: (gcloud.functions.deploy) PERMISSION_DENIED: Permission 'run.services.setIamPolicy' denied on resource 'projects/<project>/locations/<region>/services/gen2-function' (or resource may not exist).
Run Code Online (Sandbox Code Playgroud)

当我们检查cloud run时,服务名称“gen2-function”确实存在。

有人可以指导一下吗?

Joh*_*ley 5

部署该功能的账户缺少权限run.services.setIamPolicy。指定命令参数需要该权限--allow-unauthenticated

该权限位于角色中roles/run.admin

有关如何向帐户添加角色的信息,请参阅此文档:

使用 GUI 授予单个角色

授予或撤销多个角色