[英]Error Deploying Cloud Function from gitlab
我正在嘗試使用新服務帳戶(不使用默認服務帳戶)通過 gitlab 部署雲 function。 它具有雲功能開發人員角色,但仍然失敗並出現以下錯誤:
下面的錯誤包括一個用戶作為 cloud-functions-mixer。 我沒有在我的回購協議中配置任何類似的東西,也不確定為什么會出現。
首先,運行建議的命令甚至不起作用,因為建議的語法很糟糕。 我試過運行下面的命令,但它不對
錯誤:googleapi:錯誤 403:缺少服務帳戶 project-test-tf-02@appspot.gserviceaccount.com 上 cloud-functions-mixer 的必要權限 iam.serviceAccounts.actAs。 將角色“roles/iam.serviceAccountUser”授予服務帳戶 project-test-tf-02@appspot.gserviceaccount.com 上的 cloud-functions-mixer。 您可以通過運行 'gcloud iam service-accounts add-iam-policy-binding project-test-tf-02@appspot.gserviceaccount.com --member=cloud-functions-mixer --role=roles/iam.serviceAccountUser 來做到這一點'.
Google 關於cloud-functions-mixer
的說明是錯誤的。 您實際需要做的是將字符串cloud-functions-mixer
替換為正在構建或部署您的 function 的服務帳戶的名稱。
示例中將使用以下用戶定義的服務帳戶:
my-cloud-function@my-project.iam.gserviceaccount.com
是您的 function 運行的服務帳戶。build-service-account@my-project.iam.gserviceaccount.com
是構建/部署雲的服務帳戶 Function要運行的命令是:
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 Cloud Build。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.