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 menyimpan log build
Anda dapat mengonfigurasi Cloud Build untuk menyimpan log build di Cloud Logging atau di Cloud Storage dengan menyertakan kolom logging
di file konfigurasi Cloud Build.
Jika Anda tidak menentukan kolom logging
dalam file konfigurasi build, Cloud Build akan menyimpan log build di Logging dan Cloud Storage.
Langkah-langkah berikut menyimpan log build hanya di Logging:
Di file konfigurasi build, tetapkan nilai
logging
keCLOUD_LOGGING_ONLY
:YAML
steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'us-east1-docker.pkg.dev/myproject/myimage', '.'] options: logging: CLOUD_LOGGING_ONLY
JSON
{ "steps": [ { "name": "gcr.io/cloud-builders/docker", "args": [ "build", "-t", "us-east1-docker.pkg.dev/myproject/myimage", "." ] } ], "options": { "logging": "CLOUD_LOGGING_ONLY" } }
Gunakan file konfigurasi build untuk memulai build menggunakan command line, API, atau pemicu.
Memetakan kolom log build ke kolom entri log
Anda dapat mengonfigurasi JSON log build sehingga kolom log build yang ditentukan
dipetakan ke kolom LogEntry
saat log build dikirim ke Logging.
Misalnya, jika log build Anda berisi message
, pesan akan muncul
di textPayload
atau jsonPayload.message
dalam entri log
yang dihasilkan. Kolom log build yang tidak dapat dipetakan akan muncul di entri log
jsonPayload
.
Untuk mengaktifkan pemetaan kolom di log build, tetapkan
kolom BuildOptions
enableStructuredLogging
ke TRUE
.
Tabel berikut menunjukkan kolom log build yang dipetakan ke kolom entri log:
Kolom BuildLog (JSON) | Kolom LogEntry | Deskripsi | Catatan |
---|---|---|---|
message |
textPayload atau jsonPayload.message |
Mengizinkan pengguna menyetel pesan log | Harus berupa string. Jika log build hanya berisi kolom yang dapat dipetakan, pesan
akan muncul di Jika log build berisi beberapa langkah, ID langkah akan muncul di awal pesan. |
severity |
severity |
Memungkinkan pengguna menetapkan tingkat keparahan log. | Harus berupa enum LogSeverity . |
Kolom log build berikut tidak dapat dipetakan dan akan dihapus dari entri log jika muncul dalam log build:
httpRequest
logging.googleapis.com/insertId
logging.googleapis.com/labels
logging.googleapis.com/operation
logging.googleapis.com/sourceLocation
logging.googleapis.com/spanId
logging.googleapis.com/trace
logging.googleapis.com/trace_sampled
time
timestamp
timestampSeconds
timestampNanos
Semua kolom log build lainnya akan muncul sebagai bagian dari jsonPayload
entri log.
Menyimpan log build di bucket default yang dibuat Google
Secara default, Cloud Build menyimpan log build Anda di bucket Cloud Storage yang dibuat Google. Anda dapat melihat log build yang disimpan di bucket Cloud Storage yang dibuat Google, tetapi Anda tidak dapat melakukan perubahan lain pada log tersebut. Jika Anda memerlukan kontrol penuh atas bucket log, simpan log di bucket Cloud Storage yang dibuat pengguna.
Menyimpan log build di bucket buatan pengguna
Izin IAM:
Untuk menyimpan log build di bucket Cloud Storage Anda sendiri, Anda harus terlebih dahulu memberikan izin IAM yang diperlukan ke akun layanan yang Anda gunakan untuk build:
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 memiliki izin IAM yang diperlukan secara default. Anda tidak perlu memberikan izin tambahan.
Dalam kasus lain, berikan peran Storage Admin ke akun layanan yang Anda gunakan untuk build:
Buka halaman IAM di project tempat bucket Cloud Storage Anda berada:
Klik Grant access.
Masukkan alamat email akun layanan.
Pilih Cloud Storage > Storage Admin.
Klik Simpan.
Untuk menentukan bucket Cloud Storage guna menyimpan log build:
Di project Google Cloud Anda, buat bucket Cloud Storage tanpa kebijakan retensi yang ditetapkan untuk menyimpan log build Anda.
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 bernamamylogsbucket
: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" } }
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.
Menyimpan log build di bucket milik pengguna dan terregionalisasi
Secara default, Cloud Build menyimpan log build di region yang ditentukan Google
yang mungkin berbeda dengan lokasi tempat Anda menjalankan build. Opsi
defaultLogsBucketBehavior
memungkinkan Anda mengonfigurasi Cloud Build untuk
menggunakan bucket log default dalam project Anda sendiri dan di region yang sama dengan
build. Konfigurasi ini memberi Anda lebih banyak kontrol atas lokasi data log,
yang dapat membantu Anda mematuhi persyaratan residensi data.
Anda akan dikenai biaya untuk menyimpan log di project Anda sendiri. Untuk mengetahui detail harga, lihat Harga Cloud Storage.
Konfigurasi Cloud Build untuk menggunakan log milik pengguna yang diregionalisasi:
Berikan izin IAM yang diperlukan.
Jika Anda menggunakan akun layanan Cloud Build lama, akun layanan Cloud Build lama Anda memiliki izin IAM yang diperlukan secara default. Anda tidak perlu memberikan izin tambahan apa pun.
Untuk akun layanan lainnya, berikan peran Storage Admin ke akun layanan yang Anda gunakan untuk build. Untuk petunjuk cara memberikan peran ke akun layanan, lihat Memberikan peran di project.
Di konfigurasi build, tambahkan opsi
defaultLogsBucketBehavior
dan tetapkan nilainya keREGIONAL_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" } }
Gunakan file konfigurasi build untuk memulai build menggunakan command line, API, atau pemicu.
Saat Anda menjalankan build, Cloud Build akan membuat bucket log baru di region tempat Anda menjalankan build, lalu menyimpan log build ke bucket ini. Build berikutnya di project dan region yang sama akan menggunakan bucket yang ada secara default.
Jika Anda menetapkan opsi defaultLogsBucketBehavior
, lalu membuat build di beberapa region, Cloud Build akan membuat beberapa bucket untuk log build Anda.
Log build yang diregionalisasi dan disimpan di project Anda sendiri tidak memiliki kebijakan retensi. Setelan ini tidak dapat diubah.
Prioritas antar-setelan log
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 di konfigurasi build, Cloud Build akan menetapkan logging: LEGACY
dan menyimpan log di bucket Cloud Storage default yang dibuat Google. Jika Anda
menambahkan defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET
, opsi ini
akan menggantikan logging: LEGACY
.
Melihat log build
Izin IAM:
Jika log build Anda ada di Logging, berikan peran Logs Viewer pada project tempat build dikonfigurasi kepada akun utama yang ingin melihat log build:
Buka halaman IAM:
Pilih project Anda lalu klik Buka.
Di tabel izin, temukan ID email akun utama, lalu klik ikon pensil.
Pilih peran Logging > Logs Viewer.
Klik Simpan.
Jika log build Anda berada di bucket Cloud Storage default yang dibuat Google, berikan peran Project Viewer di project tempat build dikonfigurasi kepada akun utama yang ingin melihat log build:
Buka halaman IAM:
Pilih project Anda lalu klik Buka.
Di tabel izin, temukan ID email akun utama, lalu klik ikon pensil.
Pilih Project > peran Viewer.
Klik Simpan.
Jika log build Anda berada di bucket Cloud Storage yang dibuat atau dimiliki pengguna, berikan peran Storage Object Viewer kepada akun utama yang ingin melihat log build:
Buka halaman IAM:
Pilih project Anda lalu klik Buka.
Di tabel izin, temukan ID email akun utama, lalu klik ikon pensil.
Pilih peran Cloud Storage > Storage Object Viewer.
Klik Simpan.
Untuk melihat log build di Cloud Build:
Konsol
Buka halaman Cloud Build di konsol Google Cloud.
Pilih project Anda lalu klik Buka.
Di menu drop-down Region, pilih region untuk build Anda.
Di halaman Build history, klik build tertentu.
Di halaman Build details, pada bagian Steps, klik Build summary untuk melihat log build untuk seluruh build atau klik langkah build untuk melihat log build untuk langkah tersebut.
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 lognya 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
Untuk 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:
Buka repositori yang terkait dengan pemicu Anda.
Buka daftar commit Anda.
Temukan baris commit yang ingin Anda lihat log build-nya.
Klik ikon hasil di baris commit Anda.
Anda akan melihat daftar pemeriksaan yang terkait dengan commit Anda.
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 build
Anda tidak dapat menghapus log build di bucket log yang dibuat Google.
Untuk menghapus log build di bucket log yang dibuat pengguna:
Berikan peran Storage Object Admin kepada pengguna atau akun layanan yang menghapus log.
Hapus log build menggunakan petunjuk untuk menghapus objek Cloud Storage di Menghapus objek.
Untuk menghapus bucket log yang dibuat pengguna:
Berikan peran Storage Admin kepada pengguna atau akun layanan yang menghapus bucket log.
Hapus bucket log menggunakan petunjuk untuk menghapus bucket di Menghapus bucket.
Langkah berikutnya
- Pelajari log audit yang dibuat oleh Cloud Build.
- Pelajari cara melihat hasil build.
- Pelajari izin IAM Cloud Build lebih lanjut.