Halaman ini menjelaskan cara mengonfigurasi dan melihat log operasi batch penyimpanan menggunakan Cloud Logging. Tugas operasi batch penyimpanan dapat dikonfigurasi untuk membuat entri log Cloud Logging untuk setiap tugas transformasi. Setiap entri log sesuai dengan upaya transformasi objek.
Operasi batch penyimpanan mendukung logging ke Cloud Logging dan Cloud Audit Logs Cloud Storage. Meskipun kedua opsi mencatat tindakan operasi batch penyimpanan, sebaiknya gunakan Cloud Logging. Cloud Logging menyediakan platform terpusat untuk analisis log, pemantauan real-time, dan pemfilteran lanjutan, yang menawarkan solusi andal untuk mengelola dan memahami aktivitas operasi batch Anda.
Sebelum memulai
Pastikan Anda memiliki akses ke Cloud Logging. Untuk menggunakan Cloud Logging, sebaiknya berikan peran Logs Viewer (roles/logging.viewer)
Identity and Access Management. Peran Identity and Access Management Logs Viewer (roles/logging.viewer)
memberikan izin Identity and Access Management yang diperlukan untuk melihat data Cloud Logging Anda.
Untuk mengetahui informasi selengkapnya tentang izin akses Logging, lihat Kontrol akses dengan IAM.
Untuk memverifikasi dan memberikan izin IAM, selesaikan langkah-langkah berikut:
- Lihat akses saat ini untuk memverifikasi akses yang dimiliki setiap akun utama.
- Berikan peran kepada akun utama yang relevan dalam project Anda.
Memahami detail logging
Jika logging diaktifkan, operasi batch penyimpanan akan merekam detail berikut:
Tindakan yang dapat dicatat dalam log: Nilai tindakan yang dapat dicatat dalam log selalu
transform
.Status yang dapat dicatat ke log: Untuk setiap tindakan, Anda dapat memilih untuk mencatat ke log satu atau kedua status berikut:
SUCCEEDED
: Tindakan berhasil.FAILED
: Tindakan gagal.
Aktifkan logging
Untuk mengaktifkan logging, tentukan tindakan dan status yang akan dicatat.
Command line
Saat membuat tugas operasi batch penyimpanan dengan gcloud
storage batch-operations jobs create
, gunakan flag --log-actions
dan
--log-action-states
untuk mengaktifkan logging.
gcloud storage batch-operations jobs create JOB_NAME \ --manifest-location=MANIFEST_LOCATION \ --delete-object \ --log-actions=transform \ --log-action-states=LOG_ACTION_STATES
Dengan:
JOB_NAME
adalah nama yang ingin Anda berikan ke tugas. Contoh,my-job
.MANIFEST_LOCATION
adalah lokasi manifest Anda. Contoh,gs://my-bucket/manifest.csv
.LOG_ACTION_STATES
adalah daftar status yang dipisahkan koma untuk dicatat. Contoh,succeeded,failed
.
REST API
Create a storage batch operations
job
dengan
LoggingConfig
.
{ "loggingConfig": { "logActions": ["TRANSFORM"], "logActionStates": ["LOG_ACTION_STATES"], } }
Dengan:
LOG_ACTION_STATES
adalah daftar status yang dipisahkan koma untuk dicatat. Contoh, "SUCCEEDED","FAILED"
.
Melihat log
Untuk melihat log operasi batch penyimpanan, lakukan hal berikut:
Konsol
Buka Google Cloud menu navigasi menu, lalu pilih Logging > Logs Explorer :<br\></br\>
Pilih project Google Cloud .
Dari menu Upgrade, beralihlah dari Legacy Logs Viewer ke Logs Explorer.
Untuk memfilter log Anda agar hanya menampilkan entri operasi batch penyimpanan, ketik
storage_batch_operations_job
di kolom kueri, lalu klik Jalankan kueri.Di panel Query results, klik Edit time untuk mengubah jangka waktu yang akan ditampilkan hasilnya.
Untuk mengetahui informasi selengkapnya tentang cara menggunakan Logs Explorer, lihat Menggunakan Logs Explorer.
Command line
Untuk menggunakan gcloud CLI guna menelusuri log operasi batch penyimpanan, gunakan perintah gcloud logging read
.
Tentukan filter untuk membatasi hasil Anda ke log operasi batch penyimpanan.
gcloud logging read "resource.type=storage_batch_operations_job"
REST API
Gunakan metode Cloud Logging API entries.list
.
Untuk memfilter hasil Anda agar hanya menyertakan entri terkait operasi batch penyimpanan, gunakan kolom filter
. Berikut adalah contoh objek permintaan JSON:
{
"resourceNames":
[
"projects/my-project-name"
],
"orderBy": "timestamp desc",
"filter": "resource.type=\"storage_batch_operations_job\""
}
Dengan:
my-project-name
adalah nama project Anda.
Format log operasi batch penyimpanan
Semua kolom khusus operasi batch penyimpanan terdapat dalam objek
jsonPayload
. Meskipun konten persis jsonPayload
bervariasi berdasarkan
jenis tugas, ada struktur umum yang dibagikan di semua entri
TransformActivityLog
. Bagian ini menguraikan kolom log umum, lalu menjelaskan kolom khusus operasi.
Kolom log umum
Kolom berikut muncul di semua log:
jsonPayload: { "@type": "type.googleapis.com/google.cloud.storagebatchoperations.logging.TransformActivityLog", "completeTime": "YYYY-MM-DDTHH:MM:SS.SSSSSSSSSZ", "status": { "errorMessage": "String indicating error", "errorType": "ENUM_VALUE", "statusCode": "ENUM_VALUE" }, "logName": "projects/PROJECT_ID/logs/storagebatchoperations.googleapis.com%2Ftransform_activity", "receiveTimestamp": "YYYY-MM-DDTHH:MM:SS.SSSSSSSSSZ", "resource": { "labels": { "location":"us-central1", "job_id": "BATCH_JOB_ID", "resource_container": "RESOURCE_CONTAINER", // ... other labels }, "type": "storagebatchoperations.googleapis.com/Job" }, // Operation-specific details will be nested here (for example, // "DeleteObject", "PutObjectHold", "RewriteObject", "PutMetadata") // Each operation-specific object will also contain the following // object: "objectMetadataBefore": { // "gcsObject": { // "bucket": "BUCKET_NAME", // "generation": "GENERATION_NUMBER", // "objectKey": "OBJECT_PATH" // } // } }
Tabel berikut menjelaskan setiap kolom log umum:
Kolom log umum Jenis Deskripsi @type
String Menentukan jenis payload entri log dan menunjukkan bahwa log mewakili TransformActivityLog
untuk operasi batch penyimpanan.completeTime
Stempel waktu Stempel waktu yang sesuai dengan ISO 8601 saat operasi selesai. status
Objek Memberikan informasi tentang hasil aktivitas operasi batch. status.errorMessage
String Pesan error jika operasi gagal. Pesan error hanya muncul jika nilai status.statusCode
tidakOK
.status.errorType
String Jenis error. Jenis error hanya muncul jika nilai status.statusCode
bukanOK
.status.statusCode
String Kode status operasi. Operasi berhasil jika nilainya adalah OK
; nilai lain menunjukkan kegagalan.logName
String Nama resource lengkap log, yang menunjukkan project dan aliran log. receiveTimestamp
Stempel waktu Stempel waktu saat entri log diterima oleh sistem pencatatan log. resource
Objek Informasi tentang resource yang menghasilkan entri log. resource.labels
Objek Key-value pair yang memberikan informasi identifikasi tambahan tentang resource. resource.type
String Jenis resource yang membuat log. objectMetadataBefore
Objek Berisi metadata objek sebelum operasi batch dicoba. objectMetadataBefore.gcsObject
Objek Detail tentang objek. objectMetadataBefore.gcsObject.bucket
String Nama bucket tempat objek berada. objectMetadataBefore.gcsObject.generation
String Nomor pembuatan objek sebelum operasi. objectMetadataBefore.gcsObject.objectKey
String Jalur lengkap objek dalam bucket. Konten
jsonPayload
khusus operasiPerbedaan antara entri log untuk berbagai operasi batch terletak pada objek tingkat teratas yang bertingkat dalam
jsonPayload
. Hanya salah satu objek berikut yang tersedia dalam entri log tertentu, yang sesuai dengan operasi batch tertentu yang dilakukan:Menghapus objek (
DeleteObject
)jsonPayload: { "DeleteObject": { "objectMetadataBefore": { "gcsObject": { "bucket": "test-bucket", "generation": "1678912345678901", "objectKey": "test_object.txt" } } } }
Menangguhkan objek (
PutObjectHold
)jsonPayload: { "PutObjectHold": { "objectMetadataBefore": { "gcsObject": { "bucket": "test-bucket", "generation": "1678912345678901", "objectKey": "test_object.txt" } }, "temporaryHoldAfter": True, "eventBasedHoldAfter": True } }
Menulis ulang objek (
RewriteObject
)jsonPayload: { "RewriteObject": { "objectMetadataBefore": { "gcsObject": { "bucket": "test-bucket", "generation": "1678912345678901", "objectKey": "test_object.txt" } }, "kmsKeyVersionAfter": "projects/my-gcp-project/locations/us-central1/keyRings/my-keyring-01/cryptoKeys/my-encryption-key/cryptoKeyVersions/1" } }
Menempatkan metadata (
PutMetadata
)jsonPayload: { "PutMetadata": { "objectMetadataBefore": { "gcsObject": { "bucket": "test-bucket", "generation": "1678912345678901", "objectKey": "test_object.txt" } }, "content_disposition_after": "attachment; filename=\"report_final.pdf\"", "content_encoding_after": "gzip", "content_language_after": "en-US", "content_type_after": "application/pdf", "cache_control_after": "public, max-age=3600", "custom_time_after": "2025-06-27T10:00:00Z", "custom_metadata_after": { "project": "marketing", "version": "2.0", "approvedBy": "Admin" } } }
Tabel berikut menjelaskan kolom log khusus operasi:
Kolom log khusus operasi Jenis Deskripsi PutObjectHold
Objek Menunjukkan operasi penangguhan pada objek. PutObjectHold.temporaryHoldAfter
Boolean Jika nilainya True
, hal ini menunjukkan bahwa penangguhan sementara diterapkan pada objek setelah tugas operasi batch penyimpanan selesai. Nilai yang valid adalahTrue
atauFalse
.PutObjectHold.eventBasedHoldAfter
Boolean Jika nilainya True
, hal ini menunjukkan bahwa penangguhan berbasis peristiwa diterapkan ke objek setelah tugas operasi batch penyimpanan selesai. Nilai yang valid adalahTrue
atauFalse
.RewriteObject
Objek Menunjukkan operasi penulisan ulang pada objek. RewriteObject.kmsKeyVersionAfter
String Versi kunci Cloud Key Management Service yang digunakan setelah tugas penulisan ulang. Kolom kmsKeyVersionAfter
diisi jika kunci enkripsi objek berubah sebagai akibat dari penulisan ulang. Kolom ini bersifat opsional, yang berarti mungkin tidak ada jika versi kunci Cloud KMS tetap tidak berubah setelah penulisan ulang.PutMetadata
Objek Menunjukkan operasi update metadata pada objek. PutMetadata.content_disposition_after
String Menentukan nilai header Content-Disposition
setelah penyelesaian tugasPutMetadata
. Kolom ini bersifat opsional dan hanya diisi jika disposisi konten ditetapkan atau diubah.PutMetadata.content_encoding_after
String Menentukan nilai header Content-Encoding
setelah penyelesaian tugasPutMetadata
. Kolom ini bersifat opsional dan hanya diisi jika encoding konten ditetapkan atau diubah.PutMetadata.content_language_after
String Menentukan nilai header Content-Language
setelah penyelesaian tugasPutMetadata
. Kolom ini bersifat opsional dan hanya diisi jika bahasa konten ditetapkan atau diubah.PutMetadata.content_type_after
String Menentukan nilai header Content-Type
setelah penyelesaian tugasPutMetadata
. Kolom ini bersifat opsional dan hanya diisi jika jenis konten ditetapkan atau diubah.PutMetadata.cache_control_after
String Menentukan nilai header Cache-Control
setelah penyelesaian tugasPutMetadata
. Kolom ini bersifat opsional dan hanya diisi jika kontrol cache ditetapkan atau diubah.PutMetadata.custom_time_after
String Menentukan nilai header Custom-Time
setelah penyelesaian tugasPutMetadata
. Kolom ini bersifat opsional dan hanya diisi jika waktu kustom ditetapkan atau diubah.PutMetadata.custom_metadata_after
Peta (kunci: string, nilai: string) Berisi peta pasangan nilai kunci Custom- Metadata
setelah transformasi. Kolom ini mencakup metadata yang ditentukan pengguna yang ditetapkan atau diubah pada objek. Hal ini memungkinkan penyimpanan metadata tambahan yang fleksibel.