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 mencatat 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_NAMEadalah nama yang ingin Anda berikan ke tugas. Contoh,my-job.MANIFEST_LOCATIONadalah lokasi manifest Anda. Contoh,gs://my-bucket/manifest.csv.LOG_ACTION_STATESadalah 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_jobke dalam kolom kueri, lalu klik Jalankan kueri.Di panel Query results, klik Edit time untuk mengubah jangka waktu yang akan digunakan untuk menampilkan hasil.
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 @typeString Menentukan jenis payload entri log dan menunjukkan bahwa log mewakili TransformActivityLoguntuk operasi batch penyimpanan.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.statusCodetidakOK.status.errorTypeString Jenis error. Jenis error hanya muncul jika nilai status.statusCodebukanOK.status.statusCodeString Kode status operasi. Operasi berhasil jika nilainya adalah OK; nilai lain menunjukkan kegagalan.logNameString Nama resource lengkap log, yang menunjukkan project dan aliran log. receiveTimestampStempel waktu Stempel waktu saat entri log diterima oleh sistem pencatatan log. resourceObjek Informasi tentang resource yang menghasilkan entri log. resource.labelsObjek Key-value pair yang memberikan informasi identifikasi 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 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 PutObjectHoldObjek Menunjukkan operasi penangguhan pada objek. PutObjectHold.temporaryHoldAfterBoolean Jika nilainya adalah True, hal ini menunjukkan bahwa penangguhan sementara diterapkan pada objek setelah tugas operasi batch penyimpanan selesai. Nilai yang valid adalahTrueatauFalse.PutObjectHold.eventBasedHoldAfterBoolean Jika nilainya adalah True, hal ini menunjukkan bahwa penangguhan berbasis peristiwa diterapkan ke objek setelah tugas operasi batch penyimpanan 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 akibat 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 pasangan nilai kunci Custom- Metadatasetelah transformasi. Kolom ini mencakup metadata yang ditentukan pengguna yang ditetapkan atau diubah pada objek. Hal ini memungkinkan penyimpanan metadata tambahan yang fleksibel.