我繼續基於此嘗試我的專案:https://github.com/GoogleCloudPlatform/iot-smart-home-cloud
我的問題是:
cloudfunctions.googleapis.com google.cloud.functions.v1.CloudFunctionsService.UpdateFunction 專案/casaminha-2e0ca/locations/us-central1/functions/syncOnRemove [電子郵件受保護] 建置失敗:無法解析來源:googleapi:錯誤 403:[電子郵件受保護]沒有 storage.objects.get 存取 Google Cloud Storage 物件的權限。[電子郵件受保護]沒有 storage.objects.get 存取 Google Cloud Storage 物件的權限。
我在 2021 年 7 月 27 日的雲端建置或雲端運行中刪除了我在 GCP 控制台中刪除的內容(我不在我的專案中使用雲端運行)。我認為這就是我在谷歌上的行動項目中出現憑證錯誤的原因。然後我開始收到當前錯誤。
我記得我刪除的服務帳戶僅與Google控制器關聯(那裡有一個問號)
我認為 gcf 命令會重建它。但不確定這是否正確。而且我也不知道怎麼用gcf-sources-<PROJECT_NUMBER>-
我繼續嘗試使用 firestore 和 GCP 在 google 上進行操作。
命令:
firebase --project casaminha-2e0ca 功能:設定:設定 cloudiot.region=us-central1
firebase --project casaminha-2e0ca 功能:設定:設定 smarthome.id=567617xxxxxxxxxxxxxxx9r9upjxxxxxxxx0t.apps.googleusercontent.com smarthome.secret=D999999999999
firebase --project casaminha-2e0ca 功能:設定:設定 smarthome.key="99999999"
firebase 部署 --project casaminha-2e0ca
這是我在github上的項目:https://github.com/neuberfran/firebasefunction
這是我的問題追蹤器:https://issuetracker.google.com/issues/194942955?pli=1
你能幫我嗎
答案1
當您使用雲端功能時,必須啟用雲端建置 API 才能部署您的雲端功能,教學中有詳細記錄(在你開始之前)。當您在 Google Cloud 專案中啟用 Cloud Build 服務時,Cloud Build 服務帳戶將自動生成,如下所示:
[PROJECT-ID]@cloudbuild.gserviceaccount.com
關於這一點:
我在 27/jul/2021 雲端建置或雲端運行中刪除(我不在我的專案中使用雲端運行) 我在 GCP 控制台中刪除
請注意,刪除服務帳戶:
當您刪除服務帳號後,應用程式將無法再透過該服務帳號存取 Google Cloud 資源。
並根據你的問題追蹤器,看來解決方案是恢復已刪除的服務帳戶。已刪除的服務帳戶可以在 30 天內恢復。若要取消刪除或恢復,您必須找到可在 Cloud Logging/Log Explorer 中取得的已刪除服務帳號的數字 ID 或 ACCOUNT_ID,這是教程。
取得數位 ID 或 ACCOUNT_ID 後,請在 CLI 或 Cloud Shell 或 Cloud SDK 中執行下列命令:
gcloud beta iam service-accounts undelete ACCOUNT_ID
輸出:
restoredAccount:
email: SA_NAME@PROJECT_ID.iam.gserviceaccount.com
etag: BwWWE7zpApg=
name: projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com
oauth2ClientId: '123456789012345678901'
projectId: PROJECT_ID
uniqueId: 'ACCOUNT_ID'
更新:
錯誤的根本原因是缺少`Cloud Build Service Account`權限,並透過新增該權限解決了。答案2
就我而言,我沒有刪除服務帳戶,只是刪除了服務帳戶的 IAM 角色。
解決方案是進入IAM頁面,添加principal:
[PROJECT-ID]@cloudbuild.gserviceaccount.com
with role:Cloud Build Service Account
答案3
就我而言,我最近剛在我的專案上啟用了 Cloud Build API,我只需要額外等待 2 分鐘,它就可以工作了。我很高興在等待期間我沒有徒勞地搞亂 IAM 角色!