Menyimpan dan melihat log build

Saat Anda menjalankan build, Cloud Build akan mengumpulkan dan menyimpan log build Anda. Halaman ini menjelaskan cara menyimpan, melihat, dan menghapus log build.

Memilih tempat untuk mengirim log build

Anda dapat mengonfigurasi Cloud Build untuk mengirim log build ke bucket di Cloud Storage, bucket di Cloud Logging, atau keduanya.

  • Jika Anda ingin mengontrol periode retensi log build yang disimpan, kirim log tersebut ke Cloud Logging. Cloud Logging juga menyediakan lebih banyak opsi untuk menelusuri bucket guna menemukan log build tertentu.

  • Dalam beberapa kasus, ada jeda antara saat log build dibuat dan saat Logging menerimanya. Mengirim log build ke bucket di Cloud Storage dapat mengurangi latensi tersebut.

Cloud Storage dan Logging memungkinkan Anda menyimpan log di bucket default yang dibuat Google atau di bucket kustom yang dibuat pengguna. Bucket default memungkinkan Anda melihat log yang disimpan di bucket, tetapi tidak memungkinkan Anda mengubah apa pun pada bucket. Jika Anda memerlukan kontrol penuh atas bucket yang digunakan untuk penyimpanan log build, kirim log ke bucket yang dibuat pengguna.

Menyimpan log build di bucket default

Cloud Logging dan Cloud Storage memiliki bucket default tempat Anda dapat menyimpan log build. Bucket ini dibuat dan dimiliki oleh Google, serta dapat menerima log dari beberapa region. Untuk mengirim log build ke salah satu bucket ini, konfigurasikan LoggingMode file konfigurasi build Anda dengan salah satu nilai berikut:

  • GCS_ONLY: Log disimpan di bucket Cloud Storage default.

  • CLOUD_LOGGING_ONLY: Log disimpan di bucket Logging default.

  • LEGACY: Log disimpan di kedua bucket default.

Bucket Logging default memiliki kebijakan retensi 30 hari untuk log yang disimpan. Untuk menetapkan kebijakan retensi kustom bagi log build yang disimpan di Logging, simpan log build Anda di bucket kustom.

Bucket Cloud Storage default tidak memiliki kebijakan retensi.

Menyimpan log build di bucket Cloud Storage milik pengguna dan khusus region

Jika Anda mengirim log build ke bucket Cloud Storage default, Cloud Build akan menyimpannya di region yang ditentukan Google yang mungkin berbeda dari lokasi tempat Anda menjalankan build. Namun, Anda juga dapat mengonfigurasi build sehingga Cloud Build mengirim log build ke bucket Cloud Storage milik pengguna di region yang sama dengan tempat Anda menjalankan build. Konfigurasi ini memberi Anda lebih banyak kontrol atas lokasi data log build, yang dapat membantu Anda mematuhi persyaratan residensi data.

Memberikan izin IAM:

Jika bucket Cloud Storage dan Cloud Build berada dalam project Google Cloud yang sama dan Anda menggunakan akun layanan lama Cloud Build, akun layanan tersebut akan memiliki izin IAM yang diperlukan secara default. Anda tidak perlu memberikan izin tambahan apa pun. Jika tidak, lakukan yang berikut ini:

Untuk mendapatkan izin yang diperlukan untuk menyimpan log build di bucket khusus region dan milik pengguna, minta administrator untuk memberi Anda peran IAM Storage Admin (roles/storage.admin) di akun layanan yang digunakan untuk build Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Konfigurasikan bucket Cloud Storage khusus region:

  1. Dalam file konfigurasi build, tambahkan opsi defaultLogsBucketBehavior dan tetapkan nilainya ke REGIONAL_USER_OWNED_BUCKET:

    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. Gunakan file konfigurasi build untuk memulai build menggunakan command line, API, atau pemicu.

    Saat Anda menjalankan build, Cloud Build akan membuat bucket baru di region tempat Anda mengeksekusi build, lalu menyimpan log build di bucket ini. Build lebih lanjut di project dan region yang sama akan menggunakan bucket yang ada selama REGIONAL_USER_OWNED_BUCKET aktif. Bucket ini dimiliki pengguna, sehingga Anda dapat mengonfigurasinya seolah-olah adalah bucket buatan pengguna.

Jika Anda menetapkan opsi REGIONAL_USER_OWNED_BUCKET, lalu membuat build di beberapa region, Cloud Build akan membuat beberapa bucket untuk log build Anda.

Bucket Cloud Storage default khusus region tidak memiliki kebijakan retensi. Namun, Anda dapat mengotomatiskan penghapusan log build dari bucket dengan mengonfigurasi aturan siklus proses objek.

Menyimpan log build di bucket buatan pengguna

Bucket yang dibuat pengguna memberi Anda kontrol yang lebih besar atas pengelolaan dan konfigurasi bucket log.

Menyimpan log build di bucket Cloud Logging yang dibuat pengguna

Bucket Logging yang dibuat pengguna memungkinkan Anda menyesuaikan periode retensi log build yang disimpan. Untuk menyimpan log build di bucket yang dibuat pengguna di Logging, lakukan hal berikut:

Memberikan izin IAM:

Untuk mendapatkan izin yang Anda perlukan untuk menyimpan log build di bucket Cloud Logging yang dibuat pengguna, minta administrator untuk memberi Anda peran IAM Logs Configuration Writer (roles/logging.configWriter) di project Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Mengonfigurasi bucket Logging:

  1. Buat bucket dan tetapkan nilai untuk kolom Retention period.

  2. Buat sink untuk merutekan log build ke bucket baru:

    1. Masukkan hal berikut untuk filter inklusi build sink Anda:

      logName = "projects/PROJECT_ID/logs/cloudbuild"
      

      Ganti PROJECT-ID dengan ID project Google Cloud Anda.

    2. (Opsional) Untuk mencegah log Anda masuk ke bucket Logging default, ikuti contoh di Berhenti menyimpan entri log di bucket log.

Menyimpan log build di bucket Cloud Storage yang dibuat pengguna

Untuk menyimpan log build di bucket Cloud Storage yang dibuat pengguna, lakukan hal berikut:

Memberikan izin IAM:

Jika bucket Cloud Storage dan Cloud Build berada dalam project Google Cloud yang sama dan Anda menggunakan akun layanan lama Cloud Build, akun layanan lama Cloud Build Anda akan memiliki izin IAM yang diperlukan secara default. Anda tidak perlu memberikan izin tambahan apa pun. Jika tidak, lakukan yang berikut ini:

Untuk mendapatkan izin yang diperlukan untuk menyimpan log build di bucket Cloud Storage yang dibuat pengguna, minta administrator untuk memberi Anda peran IAM Storage Admin (roles/storage.admin) di akun layanan yang digunakan untuk build Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Konfigurasikan bucket Cloud Storage:

  1. Di project Google Cloud Anda, buat bucket Cloud Storage tanpa kebijakan retensi yang ditetapkan untuk menyimpan log build Anda.

  2. Dalam file konfigurasi build, tambahkan kolom logsBucket yang mengarah ke bucket Cloud Storage yang Anda buat untuk menyimpan log build. Contoh file konfigurasi build berikut berisi petunjuk untuk mem-build image penampung dan menyimpan log build di bucket bernama 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. Gunakan file konfigurasi build untuk memulai build menggunakan command line, API, atau pemicu.

Setelah build selesai, Cloud Build akan menyimpan log di bucket Cloud Storage yang Anda tentukan dalam file konfigurasi build.

Prioritas antar-setelan log

Jika Anda menentukan bucket Cloud Storage yang dibuat pengguna di logsBucket, Cloud Build akan mengirim log build ke bucket yang dibuat pengguna, bukan bucket Cloud Storage default.

Jika Anda menambahkan opsi defaultLogsBucketBehavior ke file konfigurasi build yang ada dan sebelumnya telah mengonfigurasi opsi logging atau logsBucket, sebaiknya hapus setelan tersebut untuk mencegah konflik antara setelan. Secara khusus, defaultLogsBucketBehavior tidak akan berfungsi jika Anda telah mengonfigurasi:

  • logging: CLOUD_LOGGING_ONLY untuk menyimpan log build di Cloud Logging.
  • logging: NONE untuk menonaktifkan logging.

Saat Anda menjalankan build tanpa opsi logging yang ditetapkan dalam file konfigurasi build, Cloud Build akan menetapkan logging: LEGACY dan menyimpan log build di bucket Cloud Storage default. Menetapkan defaultLogsBucketBehavior ke REGIONAL_USER_OWNED_BUCKET akan menggantikan logging: LEGACY.

Melihat log build

Untuk melihat log build, lakukan hal berikut:

Memberikan izin IAM:

Untuk mendapatkan izin yang diperlukan guna melihat log build di Cloud Storage atau Logging, minta administrator untuk memberi Anda peran IAM berikut di akun layanan yang digunakan untuk build Anda:

  • Melihat log build di bucket Cloud Storage yang dibuat atau dimiliki pengguna:
    • Storage Object Viewer (roles/storage.objectViewer) - akun utama yang ingin melihat log build
    • Logs View Accessor (roles/logging.viewAccessor) - akun utama yang ingin melihat log build
  • Melihat log build di bucket Cloud Storage default: Pelihat (roles/viewer) - project tempat build dikonfigurasi
  • Melihat log build di Logging: Logs Viewer (roles/logging.viewer) - akun utama yang ingin melihat log build

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Lihat log build di Google Cloud:

Konsol

  1. Buka halaman Cloud Build di konsol Google Cloud.

    Buka halaman Cloud Build

  2. Pilih project Anda lalu klik Buka.

  3. Di menu drop-down Region, pilih region untuk build Anda.

  4. Di halaman Build history, pilih build tertentu.

  5. Di halaman Build details, pada bagian Steps, klik Build summary untuk melihat log build untuk seluruh build atau pilih langkah build untuk melihat log build untuk langkah tersebut.

  6. Jika log Anda disimpan di Logging, di panel Build log, klik ikon untuk melihat log di Logs Explorer.

gcloud

Jalankan perintah gcloud builds log dengan build-id adalah ID build yang log-nya ingin Anda dapatkan. ID build ditampilkan di akhir proses pengiriman build saat Anda menjalankan gcloud builds submit, atau di kolom ID saat Anda menjalankan gcloud builds list.

gcloud builds log build-id

Melihat log build di GitHub dan GitHub Enterprise:

Jika Anda membuat GitHub atau pemicu GitHub Enterprise dan menentukan --include-logs-with-status sebagai opsi, Anda dapat melihat log build di GitHub dan GitHub Enterprise.

Untuk melihat log build di GitHub dan GitHub Enterprise, lakukan hal berikut:

  1. Buka repositori yang terkait dengan pemicu Anda.

  2. Buka daftar commit Anda.

  3. Temukan baris commit yang ingin Anda lihat log build-nya.

  4. Klik ikon hasil di baris commit Anda.

    Anda akan melihat daftar pemeriksaan yang terkait dengan commit Anda.

  5. Klik Details untuk baris yang ingin Anda lihat log build-nya.

    Anda akan melihat halaman Ringkasan yang terkait dengan commit Anda. Jika telah membuat pemicu menggunakan flag --include-logs-with-status, Anda akan melihat log build ditampilkan di bagian Details halaman.

Menghapus log dan bucket build

Untuk mendapatkan izin yang diperlukan untuk menghapus log build dan bucket di Cloud Storage, minta administrator untuk memberi Anda peran IAM berikut di akun layanan yang digunakan untuk build Anda:

  • Menghapus log build di bucket Cloud Storage yang dibuat atau dimiliki pengguna: Storage Admin (roles/storage.admin) - pengguna atau akun layanan yang menghapus log build
  • Menghapus bucket Cloud Storage yang dibuat atau dimiliki pengguna: Storage Admin (roles/storage.admin) - pengguna atau akun layanan yang menghapus bucket
  • Menghapus bucket Logging yang dibuat pengguna: Logs Configuration Writer (roles/logging.configWriter) - project Anda

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Untuk menghapus log build di bucket Cloud Storage yang dibuat atau dimiliki pengguna, ikuti petunjuk di bagian Menghapus objek dalam dokumentasi Cloud Storage.

Untuk menghapus bucket Cloud Storage yang dibuat atau dimiliki pengguna, ikuti petunjuk di bagian Menghapus bucket dalam dokumentasi Cloud Storage.

Untuk menghapus bucket Logging yang dibuat pengguna, ikuti petunjuk di Menghapus bucket dalam dokumentasi Logging.

Langkah berikutnya