簡體   English   中英

從 gitlab 部署雲 Function 時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM