更新:

更新:

我继续根据此尝试我的项目: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 角色!

相关内容