Anda dapat mengonfigurasi dan melihat log operasi batch penyimpanan di Cloud Logging untuk memantau progres tugas, memfilter peristiwa transformasi, dan memecahkan masalah operasi objek yang gagal. Jika diaktifkan, logging ini akan menghasilkan entri untuk setiap objek yang coba diubah oleh tugas batch.
Meskipun storage batch operation juga mengirimkan log ke Cloud Audit Logs, sebaiknya gunakan Cloud Logging untuk analisis log terpusat dan pemantauan real-time.
Sebelum memulai
Pastikan Anda memiliki akses ke Cloud Logging. Untuk menggunakan Cloud Logging, sebaiknya berikan peran Identity and Access Management Logs Viewer (roles/logging.viewer). 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, storage batch operations akan mencatat detail berikut:
Tindakan yang dapat dicatat dalam log: Nilai tindakan yang dapat dicatat dalam log selalu
transform.Status yang dapat dicatat ke dalam log: Untuk setiap tindakan, Anda dapat memilih untuk mencatat salah satu atau kedua status berikut ke dalam log:
SUCCEEDED: Tindakan berhasil.FAILED: Tindakan gagal.
Aktifkan logging
Untuk mengaktifkan logging, tentukan tindakan dan status yang akan dicatat ke dalam log.
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_NAMEadalah nama yang ingin Anda berikan ke tugas. Contoh,my-job.MANIFEST_LOCATIONadalah lokasi manifes Anda. Contoh,gs://my-bucket/manifest.csv.LOG_ACTION_STATESadalah daftar status yang dipisahkan koma untuk dicatat ke dalam log. Contoh,succeeded,failed.
REST API
Buat tugas operasi batch penyimpanan dengan LoggingConfig.
{ "loggingConfig": { "logActions": ["TRANSFORM"], "logActionStates": ["LOG_ACTION_STATES"], } }
Dengan:
LOG_ACTION_STATES adalah daftar status yang dipisahkan koma untuk dicatat ke dalam log. Contoh, "SUCCEEDED","FAILED".
Melihat log
Untuk melihat log storage batch operations, lakukan hal berikut:
Konsol
Buka menu navigasi Cloud de Confiance menu, lalu pilih Logging > Logs Explorer :<br\></br\>
Pilih project Cloud de Confiance .
Dari menu Upgrade, beralihlah dari Legacy Logs Viewer ke Logs Explorer.
Untuk memfilter log agar hanya menampilkan entri storage batch operation, ketik
storage_batch_operations_jobke dalam kolom kueri, lalu klik Run query.Di panel Query results, klik Edit time untuk mengubah jangka waktu yang akan menampilkan hasil.
Untuk mengetahui informasi selengkapnya tentang cara menggunakan Logs Explorer, lihat Menggunakan Logs Explorer.
Command line
Untuk menggunakan gcloud CLI guna menelusuri log storage batch operation, 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 agar hanya menyertakan entri yang terkait dengan 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 Storage batch operations
Semua kolom khusus operasi batch penyimpanan terdapat dalam objek jsonPayload. Meskipun konten persis jsonPayload bervariasi berdasarkan
jenis pekerjaan, ada struktur umum yang digunakan 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 @typeString Menentukan jenis payload entri log dan menunjukkan bahwa log tersebut mewakili TransformActivityLoguntuk storage batch operation.completeTimeStempel waktu Stempel waktu yang sesuai dengan ISO 8601 saat operasi selesai. statusObjek Memberikan informasi tentang hasil aktivitas operasi batch. status.errorMessageString Pesan error jika operasi gagal. Pesan error hanya muncul jika nilai status.statusCodebukanOK.status.errorTypeString Jenis error. Jenis error hanya muncul jika nilai status.statusCodebukanOK.status.statusCodeString Kode status operasi. Operasi berhasil jika nilainya adalah OK; nilai lainnya menunjukkan kegagalan.logNameString Nama resource lengkap log, yang menunjukkan project dan aliran log. receiveTimestampStempel waktu Stempel waktu saat entri log diterima oleh sistem logging. resourceObjek Informasi tentang resource yang menghasilkan entri log. resource.labelsObjek Key-value pair yang memberikan informasi identitas pribadi tambahan tentang resource. resource.typeString Jenis resource yang membuat log. objectMetadataBeforeObjek Berisi metadata objek sebelum operasi batch dicoba. objectMetadataBefore.gcsObjectObjek Detail tentang objek. objectMetadataBefore.gcsObject.bucketString Nama bucket tempat objek berada. objectMetadataBefore.gcsObject.generationString Nomor pembuatan objek sebelum operasi. objectMetadataBefore.gcsObject.objectKeyString Jalur lengkap objek dalam bucket. Konten
jsonPayloadkhusus operasiPerbedaan antara entri log untuk berbagai operasi batch terletak pada objek tingkat teratas yang bertingkat dalam
jsonPayload. Hanya satu dari objek berikut yang tersedia dalam entri log tertentu, sesuai dengan operasi batch tertentu yang dilakukan:Menghapus objek (
DeleteObject)jsonPayload: { "DeleteObject": { "objectMetadataBefore": { "gcsObject": { "bucket": "test-bucket", "generation": "1678912345678901", "objectKey": "test_object.txt" } } } }Menempatkan penangguhan 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 PutObjectHoldObjek Menunjukkan operasi penangguhan pada objek. PutObjectHold.temporaryHoldAfterBoolean Jika nilainya adalah True, ini menunjukkan bahwa penangguhan sementara diterapkan ke objek setelah tugas storage batch operations selesai. Nilai yang valid adalahTrueatauFalse.PutObjectHold.eventBasedHoldAfterBoolean Jika nilainya adalah True, ini menunjukkan bahwa penangguhan berbasis peristiwa diterapkan ke objek setelah tugas storage batch operation selesai. Nilai yang valid adalahTrueatauFalse.RewriteObjectObjek Menunjukkan operasi penulisan ulang pada objek. RewriteObject.kmsKeyVersionAfterString Versi kunci Cloud Key Management Service yang digunakan setelah tugas penulisan ulang. Kolom kmsKeyVersionAfterdiisi jika kunci enkripsi objek berubah sebagai hasil dari penulisan ulang. Kolom ini bersifat opsional, yang berarti mungkin tidak ada jika versi kunci Cloud KMS tetap tidak berubah setelah penulisan ulang.PutMetadataObjek Menunjukkan operasi update metadata pada objek. PutMetadata.content_disposition_afterString Menentukan nilai header Content-Dispositionsetelah penyelesaian tugasPutMetadata. Kolom ini bersifat opsional dan hanya diisi jika disposisi konten ditetapkan atau diubah.PutMetadata.content_encoding_afterString Menentukan nilai header Content-Encodingsetelah penyelesaian tugasPutMetadata. Kolom ini bersifat opsional dan hanya diisi jika encoding konten ditetapkan atau diubah.PutMetadata.content_language_afterString Menentukan nilai header Content-Languagesetelah penyelesaian tugasPutMetadata. Kolom ini bersifat opsional dan hanya diisi jika bahasa konten ditetapkan atau diubah.PutMetadata.content_type_afterString Menentukan nilai header Content-Typesetelah penyelesaian tugasPutMetadata. Kolom ini bersifat opsional dan hanya diisi jika jenis konten ditetapkan atau diubah.PutMetadata.cache_control_afterString Menentukan nilai header Cache-Controlsetelah penyelesaian tugasPutMetadata. Kolom ini bersifat opsional dan hanya diisi jika kontrol cache ditetapkan atau diubah.PutMetadata.custom_time_afterString Menentukan nilai header Custom-Timesetelah penyelesaian tugasPutMetadata. Kolom ini bersifat opsional dan hanya diisi jika waktu kustom ditetapkan atau diubah.PutMetadata.custom_metadata_afterPeta (kunci: string, nilai: string) Berisi peta key-value pair Custom- Metadatasetelah transformasi. Kolom ini mencakup metadata yang ditentukan pengguna yang ditetapkan atau diubah pada objek. Hal ini memungkinkan penyimpanan metadata tambahan yang fleksibel.