Build-Fehler beheben und mehr

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:

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:

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]

Weisen Sie zur Behebung dieses Fehlers Ihrem Build-Dienstkonto die Rolle „Cloud Run Functions-Entwickler“ zu.

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:

  1. 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_ID
    
  2. Weisen Sie dem Cloud Build-Dienst-Agent als Nächstes die IAM-Rolle roles/cloudbuild.serviceAgent zu:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudbuild.iam.gserviceaccount.com" \
        --role