Ich versuche weiterhin, mein Projekt auf folgender Grundlage durchzuführen:https://github.com/GoogleCloudPlatform/iot-smart-home-cloud
Mein Problem ist:
cloudfunctions.googleapis.com google.cloud.functions.v1.CloudFunctionsService.UpdateFunction Projekte/casaminha-2e0ca/locations/us-central1/functions/syncOnRemove [email geschützt] Build fehlgeschlagen: Quelle konnte nicht aufgelöst werden: Google API: Fehler 403:[email geschützt]hat keinen storage.objects.get-Zugriff auf das Google Cloud Storage-Objekt., verboten com.google.net.rpc3.client.RpcClientException: APPLICATION_ERROR;google.devtools.cloudbuild.v1/ArgoAdminV1.CreateBuild; konnte Quelle nicht auflösen: googleapi: Fehler 403:[email geschützt]hat keinen storage.objects.get-Zugriff auf das Google Cloud Storage-Objekt., verboten;AppErrorCode=3;StartTimeMs=999999999999540;unbekannt;ResFormat=AUTOMATIC;ServerTimeSec=0.999999999999999;LogBytes=256;Nicht-
Ich habe am 27. Juli 2021 Cloud Build oder Cloud Run gelöscht (ich verwende Cloud Run nicht in meinem Projekt). Ich habe es in der GCP-Konsole gelöscht. Ich dachte, das wäre der Grund für den Anmeldefehler in meinem Aktionsprojekt bei Google.Dann begann ich, den aktuellen Fehler zu erhalten.
Ich erinnere mich, dass das von mir gelöschte Dienstkonto nur mit dem Google Controller verknüpft war (da stand ein Fragezeichen)
Ich denke, der gcf-Befehl wird dies neu erstellen. Aber ich bin mir nicht sicher, ob das richtig ist. Und ich weiß auch nicht, wie man es benutztgcf-sources-<PROJEKTNUMMER>-
Ich probiere weiterhin Aktionen bei Google aus und verwende Firestore und GCP.
Befehle:
Firebase – Projekt Casaminha-2e0ca Funktionen: Konfiguration: Setze Cloudiot.region=us-central1
Firebase – Projekt Casaminha-2e0ca Funktionen: Konfiguration: Setze smarthome.id=567617xxxxxxxxxxxxxx9r9upjxxxxxxx0t.apps.googleusercontent.com smarthome.secret=D99999999999
Firebase – Projekt Casaminha-2e0ca Funktionen: Konfiguration: Setze smarthome.key="99999999"
Firebase-Bereitstellung – Projekt Casaminha-2e0ca
Dies ist mein Projekt in GitHub:https://github.com/neuberfran/firebasefunction
Dies ist mein IssueTracker:https://issuetracker.google.com/issues/194942955?pli=1
Kannst du helfen
Antwort1
Wenn Sie die Cloud-Funktion verwenden, muss die Cloud Build API aktiviert sein, um Ihre Cloud-Funktion bereitzustellen. Dies ist im Tutorial ausführlich dokumentiert (Bevor Sie beginnen). Das Cloud Build-Dienstkonto wird automatisch generiert, wenn Sie den Cloud Build-Dienst in Ihrem Google Cloud-Projekt aktivieren und sieht folgendermaßen aus:
[PROJECT-ID]@cloudbuild.gserviceaccount.com
Bezüglich dieser:
Ich habe am 27. Juli 2021 Cloud Build oder Cloud Run gelöscht (ich verwende Cloud Run nicht in meinem Projekt). Ich habe in der GCP-Konsole gelöscht
Bitte beachten Sie,Dienstkonto löschen:
Wenn Sie ein Dienstkonto löschen, haben Anwendungen über dieses Dienstkonto keinen Zugriff mehr auf Google Cloud-Ressourcen.
Und basierend auf IhrerProblemverfolgung, es scheint, dass die Lösung darin besteht, Ihr gelöschtes Servicekonto wiederherzustellen. Das gelöschte Servicekonto kann innerhalb von 30 Tagen wiederhergestellt werden. Um es wiederherzustellen oder wiederherzustellen, müssen Sie die numerische ID oder ACCOUNT_ID für das gelöschte Servicekonto finden, die Sie in Cloud Logging/Log Explorer abrufen können.hier ist das Tutorial.
Sobald Sie die numerische ID oder die ACCOUNT_ID erhalten haben, führen Sie Folgendes in Ihrer CLI oder Cloud Shell oder Ihrem Cloud SDK aus:
gcloud beta iam service-accounts undelete ACCOUNT_ID
Ausgabe:
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'
AKTUALISIEREN:
Die Hauptursache des Fehlers war das Fehlen der Berechtigung „Cloud Build Service Account“. Das Problem wurde durch das Hinzufügen dieser Berechtigung behoben.Antwort2
In meinem Fall habe ich das Dienstkonto nicht gelöscht, sondern nur die IAM-Rollen für das Dienstkonto.
Die Lösung besteht darin, zur IAM-Seite zu gehen und den Auftraggeber
[PROJECT-ID]@cloudbuild.gserviceaccount.com
mit der folgenden Rolle hinzuzufügen:Cloud Build Service Account
Antwort3
In meinem Fall hatte ich gerade erst die Cloud Build API für mein Projekt aktiviert und musste nur zwei Minuten länger warten, dann hat es funktioniert. Ich bin froh, dass ich während des Wartens nicht umsonst an den IAM-Rollen herumgefummelt habe!