Build-Logs speichern und ansehen

Wenn Sie Builds ausführen, erfasst und speichert Cloud Build Ihre Build-Logs. Auf dieser Seite wird erläutert, wie Sie Build-Logs speichern, aufrufen und löschen.

Speicherort für Build-Logs auswählen

Sie können Cloud Build so konfigurieren, dass Build-Logs an einen Bucket in Cloud Storage, einen Bucket in Cloud Logging oder an beide gesendet werden.

  • Wenn Sie die Aufbewahrungsdauer Ihrer gespeicherten Build-Logs steuern möchten, senden Sie sie an Cloud Logging. Cloud Logging bietet auch mehr Optionen, um in einem Bucket nach bestimmten Build-Logs zu suchen.

  • In einigen Fällen gibt es eine Verzögerung zwischen dem Zeitpunkt, an dem ein Build-Log generiert wird, und dem Zeitpunkt, an dem Logging es empfängt. Wenn Sie Ihre Build-Logs an einen Bucket in Cloud Storage senden, kann sich diese Latenz verringern.

Sowohl in Cloud Storage als auch in Logging können Sie Logs entweder in einem von Google erstellten Standard-Bucket oder in einem benutzerdefinierten Bucket speichern. In Standard-Buckets können Sie die darin gespeicherten Logs ansehen, aber nichts am Bucket ändern. Wenn Sie die volle Kontrolle über den Bucket benötigen, den Sie zum Speichern von Build-Logs verwenden, senden Sie Ihre Logs an einen vom Nutzer erstellten Bucket.

Build-Logs in Standard-Buckets speichern

Sowohl Cloud Logging als auch Cloud Storage haben Standard-Buckets, in denen Sie Ihre Build-Logs speichern können. Diese Buckets werden von Google erstellt und sind Eigentum von Google. Sie können Logs aus mehreren Regionen empfangen. Wenn Sie Ihre Build-Logs an einen dieser Buckets senden möchten, konfigurieren Sie die LoggingMode Ihrer Build-Konfigurationsdatei mit einem der folgenden Werte:

  • GCS_ONLY: Logs werden im standardmäßigen Cloud Storage-Bucket gespeichert.

  • CLOUD_LOGGING_ONLY: Logs werden im Standard-Logging-Bucket gespeichert.

  • LEGACY: Logs werden in beiden Standard-Buckets gespeichert.

Für den Standard-Logging-Bucket gilt eine Aufbewahrungsrichtlinie von 30 Tagen für gespeicherte Logs. Wenn Sie eine benutzerdefinierte Aufbewahrungsrichtlinie für Build-Logs festlegen möchten, die in Logging gespeichert sind, speichern Sie Ihre Build-Logs in einem benutzerdefinierten Bucket.

Für den Cloud Storage-Standard-Bucket ist keine Aufbewahrungsrichtlinie festgelegt.

Build-Logs in einem vom Nutzer erstellten und regionsspezifischen Cloud Storage-Bucket speichern

Wenn Sie Build-Logs an den Standard-Cloud Storage-Bucket senden, speichert Cloud Build sie in einer von Google angegebenen Region, die sich möglicherweise von dem Ort unterscheidet, an dem Sie einen Build ausführen. Sie können Ihren Build jedoch auch so konfigurieren, dass Cloud Build Build-Logs an einen vom Nutzer verwalteten Cloud Storage-Bucket in derselben Region sendet, in der Sie den Build ausführen. Mit dieser Konfiguration haben Sie mehr Kontrolle über den Speicherort Ihrer Build-Log-Daten, was Ihnen helfen kann, die Anforderungen an den Datenstandort einzuhalten.

IAM-Berechtigungen erteilen:

Wenn sich Ihr Cloud Storage-Bucket und Cloud Build im selben Google Cloud Projekt befinden und Sie das alte Cloud Build-Dienstkonto verwenden, hat dieses Dienstkonto standardmäßig die erforderlichen IAM-Berechtigungen. Sie müssen keine zusätzlichen Berechtigungen erteilen. Gehen Sie andernfalls so vor:

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Storage Admin (roles/storage.admin) für das Dienstkonto zuzuweisen, das für Ihren Build verwendet wird, um die Berechtigungen zu erhalten, die Sie zum Speichern von Build-Logs in einem nutzereigenen und regionsspezifischen Bucket benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Regionenspezifischen Cloud Storage-Bucket konfigurieren:

  1. Fügen Sie in Ihrer Build-Konfigurationsdatei die Option defaultLogsBucketBehavior hinzu und legen Sie ihren Wert auf REGIONAL_USER_OWNED_BUCKET fest:

    YAML

    steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: [ 'build', '-t', 'us-central1-docker.pkg.dev/myproject/myrepo/myimage', '.' ]
    options:
      defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET
    

    JSON

    {
      "steps": [
        {
          "name": "gcr.io/cloud-builders/docker",
          "args": [
            "build",
            "-t",
            "us-central1-docker.pkg.dev/myproject/myrepo/myimage",
            "."
          ]
        }
        ],
        "options": {
          "defaultLogsBucketBehavior": "REGIONAL_USER_OWNED_BUCKET"
        }
    }
    
  2. Verwenden Sie die Build-Konfigurationsdatei, um einen Build über die Befehlszeile, die API oder über Trigger zu starten.

    Wenn Sie Ihren Build ausführen, erstellt Cloud Build den neuen Bucket in der Region, in der Sie den Build ausführen, und speichert die Build-Logs dann in diesem Bucket. Bei weiteren Builds im selben Projekt und in derselben Region wird der vorhandene Bucket verwendet, solange REGIONAL_USER_OWNED_BUCKET aktiv ist. Dieser Bucket gehört dem Nutzer. Sie können ihn also wie einen vom Nutzer erstellten Bucket konfigurieren.

Wenn Sie die Option REGIONAL_USER_OWNED_BUCKET festlegen und dann Builds in mehreren Regionen erstellen, erstellt Cloud Build mehrere Buckets für Ihre Build-Logs.

Für regionsspezifische Cloud Storage-Standard-Buckets ist keine Aufbewahrungsrichtlinie festgelegt. Sie können das Löschen von Build-Logs aus Ihrem Bucket jedoch automatisieren, indem Sie eine Regel für den Objektlebenszyklus konfigurieren.

Build-Logs in vom Nutzer erstellten Buckets speichern

Mit von Nutzern erstellten Buckets haben Sie mehr Kontrolle über die Verwaltung und Konfiguration Ihrer Log-Buckets.

Build-Logs in einem vom Nutzer erstellten Cloud Logging-Bucket speichern

Mit vom Nutzer erstellten Logging-Buckets können Sie die Aufbewahrungsdauer gespeicherter Build-Logs anpassen. So speichern Sie Ihre Build-Logs in einem vom Nutzer erstellten Bucket in Logging:

IAM-Berechtigungen erteilen:

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Logs Configuration Writer (roles/logging.configWriter) für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Speichern von Build-Logs in einem vom Nutzer erstellten Cloud Logging-Bucket benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Logging-Bucket konfigurieren:

  1. Erstellen Sie einen Bucket und legen Sie einen Wert für das Feld Aufbewahrungszeitraum fest.

  2. Erstellen Sie eine Senke, um Ihre Build-Logs an Ihren neuen Bucket weiterzuleiten:

    1. Geben Sie Folgendes für den Build-Einschlussfilter der Senke ein:

      logName = "projects/PROJECT_ID/logs/cloudbuild"
      

      Ersetzen Sie PROJECT-ID durch Ihre Google Cloud Projekt-ID.

    2. Optional: Wenn Sie verhindern möchten, dass Ihre Logs in den Standard-Logging-Bucket gelangen, folgen Sie dem Beispiel unter Speichern von Logeinträgen in Log-Buckets beenden.

Build-Logs in einem vom Nutzer erstellten Cloud Storage-Bucket speichern

So speichern Sie Ihre Build-Logs in einem vom Nutzer erstellten Cloud Storage-Bucket:

IAM-Berechtigungen erteilen:

Wenn sich Ihr Cloud Storage-Bucket und Cloud Build im selben Google Cloud Projekt befinden und Sie das Legacy-Dienstkonto von Cloud Build verwenden, hat Ihr Legacy-Dienstkonto von Cloud Build standardmäßig die erforderlichen IAM-Berechtigungen. Sie müssen keine zusätzlichen Berechtigungen erteilen. Gehen Sie andernfalls so vor:

Um die Berechtigungen zu erhalten, die Sie zum Speichern von Build-Logs in einem vom Nutzer erstellten Cloud Storage-Bucket benötigen, bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Storage Admin (roles/storage.admin) für das für Ihren Build verwendete Dienstkonto zu erteilen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Cloud Storage-Bucket konfigurieren:

  1. Erstellen Sie in Ihrem Google Cloud -Projekt einen Cloud Storage-Bucket zum Speichern Ihrer Build-Logs. Für diesen Bucket darf keine Aufbewahrungsrichtlinie festgelegt sein.

  2. Fügen Sie der Build-Konfigurationsdatei das Feld logsBucket hinzu, das auf den Cloud Storage-Bucket verweist, den Sie zum Speichern von Build-Logs erstellt haben. Die folgende Build-Konfigurationsdatei enthält eine Anleitung zum Erstellen eines Container-Images und zum Speichern der Build-Logs in einem Bucket namens mylogsbucket:

    YAML

        steps:
        - name: 'gcr.io/cloud-builders/docker'
          args: [ 'build', '-t', 'us-east1-docker.pkg.dev/myproject/myimage', '.' ]
        logsBucket: 'gs://mylogsbucket'
        options:
          logging: GCS_ONLY
    

    JSON

        {
          "steps": [
           {
             "name": "gcr.io/cloud-builders/docker",
             "args": [
               "build",
               "-t",
               "us-east1-docker.pkg.dev/myproject/myimage",
               "."
             ]
           }
           ],
           "logsBucket": "gs://mylogsbucket",
           "options": {
             "logging": "GCS_ONLY"
           }
        }
    
  3. Verwenden Sie die Build-Konfigurationsdatei, um einen Build über die Befehlszeile, die API oder über Trigger zu starten.

Wenn der Build abgeschlossen ist, speichert Cloud Build die Logs in dem Cloud Storage-Bucket, den Sie in der Build-Konfigurationsdatei angegeben haben.

Vorrang von Logeinstellungen

Wenn Sie in logsBucket einen vom Nutzer erstellten Cloud Storage-Bucket definieren, sendet Cloud Build Ihre Build-Logs an den vom Nutzer erstellten Bucket anstelle des Cloud Storage-Standard-Buckets.

Wenn Sie die Option defaultLogsBucketBehavior einer vorhandenen Build-Konfigurationsdatei hinzufügen und zuvor die Optionen logging oder logsBucket konfiguriert haben, empfehlen wir, diese Einstellungen zu löschen, um Konflikte zwischen den Einstellungen zu vermeiden. Die defaultLogsBucketBehavior funktioniert nicht, wenn Sie Folgendes konfiguriert haben:

  • logging: CLOUD_LOGGING_ONLY, um Ihre Build-Logs in Cloud Logging zu speichern.
  • logging: NONE, um das Logging zu deaktivieren.

Wenn Sie einen Build ohne festgelegte Logging-Optionen in der Build-Konfigurationsdatei ausführen, legt Cloud Build logging: LEGACY fest und speichert Build-Logs im Standard-Cloud Storage-Bucket. Wenn Sie defaultLogsBucketBehavior auf REGIONAL_USER_OWNED_BUCKET festlegen, wird logging: LEGACY überschrieben.

Build-Logs anzeigen

So rufen Sie Ihre Build-Logs auf:

IAM-Berechtigungen erteilen:

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Dienstkonto zuzuweisen, das für Ihren Build verwendet wird, um die Berechtigungen zu erhalten, die Sie zum Aufrufen von Build-Logs in Cloud Storage oder Logging benötigen:

  • Build-Logs in einem vom Nutzer erstellten oder ihm gehörenden Cloud Storage-Bucket ansehen:
    • Storage-Objekt-Betrachter (roles/storage.objectViewer): die Hauptkonten, die Build-Logs ansehen möchten
    • Zugriffsberechtigter für Logbetrachtung (roles/logging.viewAccessor): die Principals, die Build-Logs ansehen möchten
  • Build-Logs im standardmäßigen Cloud Storage-Bucket ansehen: Betrachter (roles/viewer) – das Projekt, in dem der Build konfiguriert ist
  • Build-Logs in Logging ansehen: Logbetrachter (roles/logging.viewer) – die Identitäten, die Build-Logs ansehen möchten

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Build-Logs in Google Cloudansehen:

Console

  1. Öffnen Sie die Cloud Build-Seite in der Google Cloud Console.

    Zur Seite "Cloud Build"

  2. Wählen Sie Ihr Projekt aus und klicken Sie auf Öffnen.

  3. Wählen Sie im Drop-down-Menü Region die Region für Ihren Build aus.

  4. Wählen Sie auf der Seite Build-Verlauf einen bestimmten Build aus.

  5. Klicken Sie auf der Seite Build-Details unter Schritte auf Build-Zusammenfassung, um Build-Logs für den gesamten Build aufzurufen, oder wählen Sie einen Build-Schritt aus, um Build-Logs für diesen Schritt aufzurufen.

  6. Wenn Ihre Logs in Logging gespeichert sind, klicken Sie im Bereich Build-Log auf das Symbol , um die Logs im Log-Explorer aufzurufen.

gcloud

Führen Sie den Befehl gcloud builds log aus, wobei build-id die ID des Builds ist, für den Sie Build-Logs abrufen möchten. Die Build-ID wird am Ende des Übermittlungsprozesses für den Build angezeigt, wenn Sie gcloud builds submit ausführen, oder in der ID-Spalte, wenn Sie gcloud builds list ausführen.

gcloud builds log build-id

Build-Logs in GitHub und GitHub Enterprise ansehen:

Wenn Sie einen GitHub- oder GitHub Enterprise-Trigger mit der gcloud CLI oder der Cloud Build API erstellen und --include-logs-with-status als Option angeben, können Sie Ihre Build-Logs in GitHub und GitHub Enterprise ansehen.

So rufen Sie Build-Logs in GitHub und GitHub Enterprise auf:

  1. Rufen Sie das Repository auf, das mit Ihrem Trigger verknüpft ist.

  2. Rufen Sie die Liste Ihrer Commits auf.

  3. Suchen Sie die Zeile des Commits, für den Sie Build-Logs aufrufen möchten.

  4. Klicken Sie in der Zeile Ihres Commits auf das Ergebnissymbol.

    Es wird eine Liste der Prüfungen angezeigt, die mit Ihrem Commit verknüpft sind.

  5. Klicken Sie in der Zeile, für die Sie Build-Logs aufrufen möchten, auf Details.

    Die Seite Zusammenfassung für Ihren Commit wird angezeigt. Wenn Sie einen Trigger mit dem Flag --include-logs-with-status erstellt haben, werden die Build-Logs im Bereich Details auf der Seite angezeigt.

Build-Logs und -Buckets löschen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Dienstkonto zuzuweisen, das für Ihren Build verwendet wird, um die Berechtigungen zu erhalten, die Sie zum Löschen von Build-Logs und Buckets in Cloud Storage benötigen:

  • So löschen Sie Build-Logs in einem vom Nutzer erstellten oder ihm gehörenden Cloud Storage-Bucket: Storage-Administrator (roles/storage.admin): Der Nutzer oder das Dienstkonto, das Build-Logs löscht.
  • Von Nutzern erstellte oder ihnen gehörende Cloud Storage-Bucket löschen: Storage-Administrator (roles/storage.admin): Der Nutzer oder das Dienstkonto, das Buckets löscht.
  • So löschen Sie einen vom Nutzer erstellten Logging-Bucket: Autor von Logkonfigurationen (roles/logging.configWriter) – Ihr Projekt

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Wenn Sie Build-Logs in einem vom Nutzer erstellten oder im Besitz des Nutzers befindlichen Cloud Storage-Bucket löschen möchten, folgen Sie der Anleitung unter Objekte löschen in der Cloud Storage-Dokumentation.

Wenn Sie einen vom Nutzer erstellten oder im Besitz des Nutzers befindlichen Cloud Storage-Bucket löschen möchten, folgen Sie der Anleitung unter Buckets löschen in der Cloud Storage-Dokumentation.

Wenn Sie einen vom Nutzer erstellten Logging-Bucket löschen möchten, folgen Sie der Anleitung unter Bucket löschen in der Logging-Dokumentation.

Nächste Schritte