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, kirimkan 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 waktu 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 tentang bucket tersebut. Jika Anda memerlukan kontrol penuh atas bucket yang Anda gunakan untuk penyimpanan log build, kirim log Anda 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, konfigurasi 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 data 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 spesifik per region

Jika Anda mengirim log build ke bucket Cloud Storage default, Cloud Build akan menyimpannya di region yang ditentukan Google yang mungkin berbeda dengan lokasi tempat Anda menjalankan build. Namun, Anda juga dapat mengonfigurasi build agar Cloud Build mengirimkan 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 Anda berada dalam project yang sama Google Cloud dan Anda menggunakan akun layanan lama Cloud Build, maka akun layanan tersebut 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) pada 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.

Konfigurasi bucket Cloud Storage khusus region:

  1. Di 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 menjalankan build, lalu menyimpan log build di bucket ini. Build selanjutnya dalam 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 bucket ini adalah bucket yang dibuat 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 Anda.

Menyimpan log build di bucket Cloud Logging yang dibuat pengguna

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

Memberikan izin IAM:

Untuk mendapatkan izin yang diperlukan agar dapat 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.

Konfigurasi bucket Logging:

  1. Buat bucket dan tetapkan nilai untuk kolom Periode retensi.

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

    1. Masukkan yang berikut untuk filter penyertaan build sink Anda:

      logName = "projects/PROJECT_ID/logs/cloudbuild"
      

      Ganti PROJECT-ID dengan Google Cloud project ID 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 Anda berada di project yang sama Google Cloud dan Anda menggunakan akun layanan lama Cloud Build, akun layanan lama Cloud Build Anda 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 Anda untuk memberi Anda peran IAM Storage Admin (roles/storage.admin) pada 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.

Konfigurasi 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. File konfigurasi build contoh berikut berisi petunjuk untuk membangun image container 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 antara setelan log

Jika Anda menentukan bucket Cloud Storage yang dibuat pengguna di logsBucket, maka Cloud Build akan mengirimkan log build Anda ke bucket yang dibuat pengguna, bukan ke 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 antar-setelan. Secara khusus, defaultLogsBucketBehavior tidak akan berfungsi jika Anda telah mengonfigurasi:

  • logging: CLOUD_LOGGING_ONLY untuk menyimpan log build Anda 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 pada 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) - prinsipal yang ingin melihat log build
    • Logs View Accessor (roles/logging.viewAccessor) - prinsipal 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) - prinsipal 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.

Melihat 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, di bagian Steps, klik Build summary untuk melihat log build untuk seluruh build Anda atau pilih langkah build untuk melihat log build untuk langkah tersebut.

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

gcloud

Jalankan perintah gcloud builds log dengan build-id adalah ID build yang log build-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 pemicu GitHub atau GitHub Enterprise dengan gcloud CLI atau Cloud Build API dan menentukan --include-logs-with-status sebagai opsi, maka 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. Cari 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 Detail 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 dan bucket build di Cloud Storage, minta administrator untuk memberi Anda peran IAM berikut pada akun layanan yang digunakan untuk build Anda:

  • Menghapus log build di bucket Cloud Storage yang dibuat atau dimiliki pengguna: Admin Storage (roles/storage.admin) - pengguna atau akun layanan yang menghapus log build
  • Menghapus bucket Cloud Storage yang dibuat atau dimiliki pengguna: Admin Storage (roles/storage.admin) - pengguna atau akun layanan yang menghapus bucket
  • Menghapus bucket Logging yang dibuat pengguna: Penulis Konfigurasi Log (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