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 außerdem mehr Optionen, um in einem Bucket nach bestimmten Build-Logs zu suchen.

  • In einigen Fällen gibt es eine Verzögerung zwischen dem Erstellen eines Build-Logs und dem Empfang durch Logging. Wenn Sie Ihre Build-Logs an einen Bucket in Cloud Storage senden, kann sich die 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 sich die darin gespeicherten Logs ansehen, aber keine Änderungen am Bucket vornehmen. 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 Bucket werden von Google erstellt und sind Eigentum von Google. Sie können Protokolle aus mehreren Regionen empfangen. Wenn Sie Ihre Build-Protokolle an einen dieser Buckets senden möchten, konfigurieren Sie LoggingMode in Ihrer Build-Konfigurationsdatei mit einem der folgenden Werte:

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

  • CLOUD_LOGGING_ONLY: Protokolle werden im standardmäßigen Logging-Bucket gespeichert.

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

Für den standardmäßigen Logging-Bucket gilt eine Aufbewahrungsdauer von 30 Tagen für gespeicherte Protokolle. Wenn Sie eine benutzerdefinierte Aufbewahrungsrichtlinie für Build-Logs festlegen möchten, die im Logging-Dienst gespeichert sind, speichern Sie Ihre Build-Logs in einem benutzerdefinierten Bucket.

Für den standardmäßigen Cloud Storage-Bucket gibt es keine Aufbewahrungsrichtlinie.

Build-Logs in einem Cloud Storage-Bucket speichern, der dem Nutzer gehört und regionsspezifisch ist

Wenn Sie Build-Logs an den Standard-Cloud Storage-Bucket senden, speichert Cloud Build sie in einer von Google angegebenen Region, die sich vom Speicherort unterscheiden kann, an dem Sie einen Build ausführen. Sie können Ihren Build aber auch so konfigurieren, dass Cloud Build Build-Logs an einen Cloud Storage-Bucket sendet, der einem Nutzer gehört und sich in derselben Region befindet, in der Sie Ihren Build ausführen. Mit dieser Konfiguration haben Sie mehr Kontrolle über den Speicherort Ihrer Build-Protokolldaten. So können Sie die Anforderungen an den Datenstandort besser erfüllen.

IAM-Berechtigungen gewähren:

Wenn sich der 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:

Um die Berechtigungen zu erhalten, die Sie zum Speichern von Build-Protokollen in einem vom Nutzer erstellten und regionsspezifischen 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 zuzuweisen. 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.

Regionspezifischen Cloud Storage-Bucket konfigurieren:

  1. Fügen Sie in der Build-Konfigurationsdatei die Option defaultLogsBucketBehavior hinzu und legen Sie den 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. Für weitere Builds im selben Projekt und in derselben Region wird der vorhandene Bucket verwendet, solange REGIONAL_USER_OWNED_BUCKET aktiv ist. Da dieser Bucket dem Nutzer gehört, können Sie ihn so konfigurieren, als wäre er von einem Nutzer erstellt worden.

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

Für regionsspezifische Cloud Storage-Standard-Buckets gibt es keine Aufbewahrungsrichtlinie. Sie können das Löschen von Build-Logs aus Ihrem Bucket jedoch automatisieren, indem Sie eine Objektlebenszyklusregel 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 gewähren:

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-Protokollen in einem von Nutzern 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 den neuen Bucket weiterzuleiten:

    1. Geben Sie für den Einschlussfilter der Senke Folgendes 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 verschoben werden, 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 gewähren:

Wenn sich der Cloud Storage-Bucket und Cloud Build im selben Google Cloud-Projekt befinden und Sie das alte Cloud Build-Dienstkonto verwenden, hat Ihr altes Cloud Build-Dienstkonto 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 von Nutzern erstellten Cloud Storage-Bucket benötigen, bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Storage Admin (roles/storage.admin) für das für den 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, für den keine Aufbewahrungsrichtlinie festgelegt ist, um Ihre Build-Logs zu speichern.

  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 zwischen den Protokolleinstellungen

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

Wenn Sie die Option defaultLogsBucketBehavior einer vorhandenen Build-Konfigurationsdatei hinzufügen und zuvor logging- oder logsBucket-Optionen konfiguriert haben, empfehlen wir, diese Einstellungen zu löschen, um Konflikte zwischen den Einstellungen zu vermeiden. Insbesondere funktioniert die defaultLogsBucketBehavior 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 ausführen, in dessen Build-Konfigurationsdatei keine Logging-Optionen festgelegt sind, 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 gewähren:

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:

  • So rufen Sie Build-Logs in einem vom Nutzer erstellten oder vom Nutzer verwalteten Cloud Storage-Bucket auf:
    • Storage-Objekt-Betrachter (roles/storage.objectViewer): die Hauptkonten, die Build-Logs ansehen möchten
    • Zugriffsberechtigter für Logbetrachtung (roles/logging.viewAccessor): die Hauptpersonen, die Build-Logs aufrufen möchten
  • Build-Logs im standardmäßigen Cloud Storage-Bucket ansehen: Betrachter (roles/viewer) für das Projekt, in dem der Build konfiguriert ist
  • Build-Logs in der Protokollierung aufrufen: Logbetrachter (roles/logging.viewer): Nutzer, die Build-Logs aufrufen 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.

So rufen Sie Build-Logs in Google Cloud auf:

Console

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

    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-Protokolle in GitHub und GitHub Enterprise ansehen:

Wenn Sie einen GitHub- oder GitHub Enterprise-Trigger erstellen und --include-logs-with-status als Option angeben, können Sie Ihre Build-Protokolle in GitHub und GitHub Enterprise aufrufen.

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 der Commits auf.

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

  4. Klicken Sie in der Zeile mit Ihrem Commit auf das Ergebnissymbol.

    Es wird eine Liste der mit Ihrem Commit verknüpften Prüfungen angezeigt.

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

    Die Seite Zusammenfassung wird angezeigt, die mit Ihrem Commit verknüpft ist. Wenn Sie einen Trigger mit dem Flag --include-logs-with-status erstellt haben, werden Ihre Build-Protokolle im Bereich Details 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 zum Löschen von Build-Logs und Buckets in Cloud Storage zu erhalten:

  • Build-Logs in einem vom Nutzer erstellten oder zugewiesenen Cloud Storage-Bucket löschen: Storage Admin (roles/storage.admin): Nutzer oder Dienstkonto, das Build-Logs löscht
  • Cloud Storage-Bucket löschen, der von einem Nutzer erstellt wurde oder dem ein Nutzer zugewiesen ist: Storage-Administrator (roles/storage.admin): Nutzer oder 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 vom Nutzer verwalteten 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 zugewiesenen 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 Einen Bucket löschen in der Logging-Dokumentation.

Nächste Schritte