我继续根据此尝试我的项目: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:[电子邮件保护]没有对 Google Cloud Storage 对象的 storage.objects.get 访问权限。,禁止 com.google.net.rpc3.client.RpcClientException:APPLICATION_ERROR;google.devtools.cloudbuild.v1/ArgoAdminV1.CreateBuild;无法解析源:googleapi:错误 403:[电子邮件保护]没有对 Google Cloud Storage 对象的 storage.objects.get 访问权限。,禁止;AppErrorCode=3;StartTimeMs=999999999999540;未知;ResFormat=AUTOMATIC;ServerTimeSec=0.999999999999999;LogBytes=256;非
我在 2021 年 7 月 27 日删除了 cloud build 或 cloud run(我的项目中不使用 cloud run),我在 GCP 控制台中删除了它。我以为这就是我在 google 上的操作项目中出现凭据错误的原因。然后我开始收到当前错误。
我记得我删除的服务帐户仅与 Google 控制器相关联(那里有一个问号)
我认为 gcf 命令会重建它。但不确定这是否正确。我也不知道如何使用gcf-源-<项目编号>-
我继续尝试在 Google 上采取行动,使用 firestore 和 GCP。
命令:
firebase --project casaminha-2e0ca 功能:配置:设置 cloudiot.region=us-central1
firebase --project casaminha-2e0ca 功能:配置:设置 smarthome.id=567617xxxxxxxxxxxxx9r9upjxxxxxxx0t.apps.googleusercontent.com smarthome.secret=D99999999999
firebase --project casaminha-2e0ca 功能:配置:设置 smarthome.key="99999999"
firebase 部署--项目 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
关于这一点:
我在 2021 年 7 月 27 日删除了 cloud build 或 cloud run(我的项目中不使用 cloud run)我在 GCP 控制台中删除了
请注意,删除服务帐户:
当您删除服务帐号时,应用程序将无法再通过该服务帐号访问 Google Cloud 资源。
并基于你的问题追踪器,解决方案似乎是恢复已删除的服务帐户。已删除的服务帐户可以在 30 天内恢复。要取消删除或恢复,您必须找到已删除服务帐户的数字 ID 或 ACCOUNT_ID,您可以在 Cloud Logging/Log Explorer 中获取该 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'
更新:
错误的根本原因是缺少“云构建服务帐户”权限,通过添加此权限解决了这个问题。答案2
就我而言,我没有删除服务帐户,只是删除了服务帐户的 IAM 角色。
解决方案是转到 IAM 页面,并添加主体:
[PROJECT-ID]@cloudbuild.gserviceaccount.com
具有角色:Cloud Build Service Account
答案3
就我而言,我最近刚刚在我的项目中启用了 Cloud Build API,我只需要多等 2 分钟就可以了。我很高兴在等待的时候没有白白浪费时间去调整 IAM 角色!