Auf dieser Seite werden Strategien zur Fehlerbehebung sowie Lösungen für häufige Fehlermeldungen beschrieben, die beim Ausführen eines Builds auftreten können.
Haben Sie sich die Build-Logs angesehen?
Verwenden Sie Logging- oder Cloud Storage-Build-Logs
, um weitere Informationen zum Build-Fehler zu erhalten. Logs, die in stdout oder
stderr geschrieben wurden, können über die
Console und die gcloud CLI aufgerufen werden. Google Cloud
Manuelle Builds schlagen fehl, da der Nutzer keinen Zugriff auf die Build-Logs hat
Der folgende Fehler wird angezeigt, wenn Sie versuchen, einen Build manuell auszuführen:
AccessDeniedAccess denied. [EMAIL_ADDRESS] does not have storage.objects.get access to the Google Cloud Storage object.
Dieser Fehler wird angezeigt, da Cloud Build erfordert, dass Nutzer manuelle Builds und dieStandard-Bucket von Cloud Storage-Logs die Rolle "Projektbetrachter" sowie die Rolle "Cloud Build-Bearbeiter" haben. Sie haben folgende Möglichkeiten, um diesen Fehler zu beheben:
Verwenden Sie den Standard-Log-Bucket und weisen Sie dem Nutzer, der den Build ausführt, die Rolle Projektbetrachter und die Rolle Cloud-Build-Bearbeiter zu. Eine Anleitung zum Gewähren dieser Berechtigung finden Sie unter Zugriff auf Cloud Build-Ressourcen konfigurieren.
Erstellen Sie einen eigenen Cloud Storage-Bucket zum Speichern von Logs. Eine Anleitung finden Sie unter Build-Logs in einem vom Nutzer erstellten Bucket speichern.
Builds schlagen aufgrund einer fehlenden iam.serviceAccounts.actAs-Berechtigung fehl
Der folgende Fehler wird angezeigt, wenn Sie versuchen, einen Build mit einem verwalteten Dienst wie Cloud Run oder App Engine bereitzustellen:
Missing necessary permission iam.serviceAccounts.actAs for [USER] on the service account [SERVICE ACCOUNT]
Konfigurieren Sie zur Behebung dieses Fehlers Ihr angegebenes Cloud Build-Dienstkonto oder das Standard-Cloud Build-Dienstkonto so, dass es das Dienstkonto des verwalteten Dienstes imitiert, den Sie für Ihren Build verwenden. Weitere Informationen zu dieser Aufgabe finden Sie unter Identitätsübernahme für Cloud Build-Dienstkonten für verwaltete Dienste konfigurieren.
Weitere Informationen zu Dienstkonten und Berechtigungen finden Sie in den folgenden Themen:
- Benutzerdefinierte Dienstkonten konfigurieren
- Standard-Cloud Build-Dienstkonto
- Informationen zu IAM-Rollen
- Berechtigungen für das Standard-Cloud Build-Dienstkonto erteilen
Fehler „Permission denied“ beim Bereitstellen in Cloud Run Functions
Der folgende Fehler wird angezeigt, wenn Sie versuchen, Cloud Run Functions zu verwenden:
ResponseError: status=[403], code=[Ok], message=[Permission 'cloudfunctions.functions.get' denied]
Build-Trigger schlägt aufgrund einer fehlenden cloudbuild.builds.create-Berechtigung fehl
Beim Ausführen eines Build-Triggers wird ein Fehler wie der folgende angezeigt:
Failed to trigger build: Permission 'cloudbuild.builds.create' denied on resource 'projects/xxxxxxxx' (or it may not exist)
Build-Trigger erstellen mit einem Dienstkonto einen Build. Dieser Fehler gibt an, dass dem Dienstkonto die IAM-Berechtigung cloudbuild.builds.create fehlt, die für das Dienstkonto erforderlich ist, um einen Build-Trigger auszuführen. Sie können diesen Fehler beheben, indem Sie entweder Ihrem benutzerdefinierten Dienstkonto
oder dem Standarddienstkonto die Cloud Build Service Account
IAM-Rolle zuweisen.
Fehler beim Senden des Builds aufgrund fehlender Berechtigungen des Dienst-Agents
Wenn der Cloud Build-Dienst-Agent gelöscht wurde oder keine Berechtigungen hat, kann beim Senden eines Builds der folgende Fehler auftreten.
Caller does not have required permission to use project $PROJECT_ID. Grant the caller the roles/serviceusage.serviceUsageConsumer role, or a custom role with the serviceusage.services.use permission, by visiting https://console.developers.google.com/iam-admin/iam/project?project=$PROJECT_ID and then retry. Propagation of the new permission may take a few minutes.
Der Aufrufer in diesem Szenario ist der Cloud Build-Dienst-Agent. Führen Sie die folgenden Schritte aus, um dieses Berechtigungsproblem zu beheben:
Prüfen Sie, ob der Cloud Build-Dienst-Agent vorhanden ist. Sie können den Dienst-Agent für ein Projekt aufrufen. Dazu rufen Sie die Seite „IAM“ in der Google Cloud Console auf und klicken auf das Käststs Von Google verwaltete Dienstkonten anzeigen. Wenn er nicht vorhanden ist, können Sie ihn mit dem folgenden gcloud CLI-Befehl erstellen:
gcloud beta services identity create --service=cloudbuild.googleapis.com \ --project=PROJECT_IDWeisen Sie dem Cloud Build-Dienst-Agent als Nächstes die IAM-Rolle
roles/cloudbuild.serviceAgentzu:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudbuild.iam.gserviceaccount.com" \ --role