我试图通过gitlab使用一个新的服务帐户(而不是使用默认的服务帐户)来部署云功能。它具有云函数开发人员的角色,但仍然失败,错误如下:
下面的错误包括一个用户作为云功能混频器.我还没有在我的回购中配置类似的东西,也不知道为什么会出现这种情况。
首先,运行建议的命令甚至不能工作,因为建议的语法不好。我试过运行下面的命令,但这是不对的
错误: googleapi:错误403:服务帐户project-test-tf-02@appspot.gserviceaccount.com.上的云函数-混频器缺少必要的权限iam.serviceAccounts.actAs将角色角色/iam.serviceAccountUser授予服务帐户project-test-tf-02@appspot.gserviceaccount.com.上的云函数-混合器您可以通过运行'gcloud iam服务-functions-iam-策略绑定project-test-tf-02@appspot.gserviceaccount.com -成员=云函数-混频器-角色=角色/iam.serviceAccountUser‘来做到这一点。
发布于 2022-04-29 18:26:19
谷歌关于cloud-functions-mixer的说明是错误的。实际上,您需要做的是将字符串cloud-functions-mixer替换为构建或部署函数的服务帐户的名称。
在示例中将使用下列用户定义的服务帐户:
my-cloud-function@my-project.iam.gserviceaccount.com是您的函数运行的服务帐户。build-service-account@my-project.iam.gserviceaccount.com是构建/部署云功能的服务帐户要运行的命令是:
gcloud iam service-accounts add-iam-policy-binding
my-cloud-function@my-project.iam.gserviceaccount.com
--member=serviceAccount:build-service-account@my-project.iam.gserviceaccount.com
--role=roles/iam.serviceAccountUser或者,在Terraform中,您需要这样的资源:
resource "google_service_account_iam_member" "opentok_webhook_mixer" {
service_account_id = google_service_account.my_cloud_function.id
role = "roles/iam.serviceAccountUser"
member = "serviceAccount:${google_service_account.build_service_account.email}"
}您必须更新服务帐户资源的名称。
这种方法也适用于Google构建。
https://stackoverflow.com/questions/71840853
复制相似问题