אתם יכולים להגדיר ולראות את היומנים של פעולות רבות על פריטי אחסון ב-Cloud Logging כדי לעקוב אחרי התקדמות המשימה, לסנן אירועי טרנספורמציה ולפתור בעיות בפעולות שנכשלו על אובייקטים. כשהרישום ביומן הזה מופעל, נוצרת רשומה לכל אובייקט שמשימה באצווה מנסה לבצע עליו טרנספורמציה.
למרות שגם פעולות רבות על פריטי אחסון שולחות יומנים ליומני הביקורת של Cloud, מומלץ להשתמש ב-Cloud Logging לניתוח מרכזי של יומנים ולמעקב בזמן אמת.
לפני שמתחילים
מוודאים שיש לכם גישה ל-Cloud Logging. כדי להשתמש ב-Cloud Logging, מומלץ להקצות את התפקיד Logs Viewer (roles/logging.viewer) בניהול הזהויות והרשאות הגישה (IAM). התפקיד Logs Viewer (roles/logging.viewer) בניהול הזהויות והרשאות הגישה (IAM) מספק את ההרשאות הנדרשות כדי להציג את הנתונים שלכם ב-Cloud Logging.
מידע נוסף על הרשאות גישה ל-Logging זמין במאמר בקרת גישה באמצעות IAM.
כדי לאמת ולהעניק את הרשאות ה-IAM:
- הצגת הגישה הנוכחית כדי לבדוק את הגישה שיש לכל חשבון משתמש.
- מקצים תפקיד לחשבונות המשתמשים הרלוונטיים בפרויקט.
הסבר על פרטי הרישום ביומן
כשהרישום ביומן מופעל, פעולות רבות על פריטי אחסון מתעדות את הפרטים הבאים:
פעולה שניתן לתעד ביומן: הערך של הפעולה שניתן לתעד ביומן הוא תמיד
transform.מצבים שניתן לתעד ביומן: לכל פעולה, אתם יכולים לבחור לתעד ביומן אחד מהמצבים הבאים או את שניהם:
-
SUCCEEDED: הפעולה בוצעה בהצלחה. -
FAILED: הפעולה נכשלה.
-
הפעלת הרישום ביומן
כדי להפעיל את הרישום ביומן, צריך לציין את הפעולות והמצבים שרוצים לתעד.
שורת הפקודה
כשיוצרים משימה של פעולות רבות על פריטי אחסון באמצעות gcloud
storage batch-operations jobs create, משתמשים בדגלים --log-actions ו---log-action-states כדי להפעיל את הרישום ביומן.
gcloud storage batch-operations jobs create JOB_NAME \ --manifest-location=MANIFEST_LOCATION \ --delete-object \ --log-actions=transform \ --log-action-states=LOG_ACTION_STATES
כאשר:
-
JOB_NAMEהוא השם שרוצים לתת למשימה. לדוגמה,my-job. -
MANIFEST_LOCATIONהוא המיקום של המניפסט. לדוגמה,gs://my-bucket/manifest.csv. -
LOG_ACTION_STATESהיא רשימה מופרדת בפסיקים של מצבים לרישום ביומן. לדוגמה,succeeded,failed.
API בארכיטקטורת REST
יוצרים משימה של פעולות רבות על פריטי אחסון עם LoggingConfig.
{ "loggingConfig": { "logActions": ["TRANSFORM"], "logActionStates": ["LOG_ACTION_STATES"], } }
כאשר:
LOG_ACTION_STATES היא רשימה מופרדת בפסיקים של מצבים לרישום ביומן. לדוגמה, "SUCCEEDED","FAILED".
צפייה ביומנים
כדי לראות את היומנים של פעולות רבות על פריטי אחסון:
המסוף
בתפריט הניווט Cloud de Confiance menu, בוחרים באפשרות Logging > Logs Explorer :<br\></br\>
בוחרים פרויקט ב- Cloud de Confiance .
בתפריט Upgrade, עוברים מ-מציג היומנים מדור קודם ל-Logs Explorer.
כדי לסנן את היומנים כך שיוצגו רק רשומות של פעולות רבות על פריטי אחסון, מקלידים
storage_batch_operations_jobבשדה השאילתה ולוחצים על Run query.בחלונית Query results, לוחצים על Edit time כדי לשנות את התקופה שלגביה רוצים לקבל תוצאות.
למידע נוסף על השימוש ב-Logs Explorer, קראו את המאמר שימוש ב-Logs Explorer.
שורת הפקודה
כדי לחפש ביומנים של פעולות רבות על פריטי אחסון באמצעות ה-CLI של gcloud, משתמשים בפקודה gcloud logging read.
מציינים מסנן כדי להגביל את התוצאות ליומנים של פעולות רבות על פריטי אחסון.
gcloud logging read "resource.type=storage_batch_operations_job"
API בארכיטקטורת REST
משתמשים ב-method entries.list של Cloud Logging API.
כדי לסנן את התוצאות כך שיכללו רק רשומות שקשורות לפעולות רבות על פריטי אחסון, משתמשים בשדה filter. הדוגמה הבאה היא אובייקט בקשה ב-JSON:
{
"resourceNames":
[
"projects/MY_PROJECT_NAME"
],
"orderBy": "timestamp desc",
"filter": "resource.type=\"storage_batch_operations_job\""
}
כאשר:
MY_PROJECT_NAME הוא שם הפרויקט.
פורמט היומן של פעולות רבות על פריטי אחסון
כל השדות הספציפיים לפעולות רבות על פריטי אחסון נמצאים באובייקט jsonPayload. התוכן המדויק של jsonPayload משתנה בהתאם לסוג העבודה, אבל יש מבנה משותף לכל הרשומות של TransformActivityLog. בקטע הזה מתוארים השדות הנפוצים ביומן, ואז מפורטים השדות הספציפיים לפעולה.
שדות נפוצים ביומן
השדות הבאים מופיעים בכל היומנים:
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" // } // } }בטבלה הבאה מתוארים כל אחד מהשדות הנפוצים ביומן:
שדות נפוצים ביומן סוג תיאור @typeString מציין את סוג המטען הייעודי (payload) של הרשומה ביומן, ומציין שהיומן מייצג TransformActivityLogלפעולות רבות על פריטי אחסון.completeTimeחותמת הזמן חותמת הזמן שבה הפעולה הושלמה, בפורמט תואם לתקן ISO 8601. statusאובייקט מספק מידע על התוצאה של פעילות האצווה. status.errorMessageString הודעת שגיאה אם הפעולה נכשלת. הודעת השגיאה מופיעה רק אם הערך של status.statusCodeהוא לאOK.status.errorTypeString סוג השגיאה. סוג השגיאה מופיע רק אם הערך של status.statusCodeהוא לאOK.status.statusCodeString קוד הסטטוס של הפעולה. הפעולה הצליחה אם הערך הוא OK. כל ערך אחר מציין שהפעולה נכשלה.logNameString השם המלא של משאב היומן, שמציין את הפרויקט ואת זרם היומן. receiveTimestampחותמת הזמן חותמת הזמן שבה הרשומה ביומן התקבלה במערכת הרישום ביומן. resourceאובייקט מידע על המשאב שיצר את הרשומה ביומן. resource.labelsאובייקט צמדי מפתח/ערך שמספקים פרטים אישיים מזהים נוספים לגבי המשאב. resource.typeString סוג המשאב שיצר את היומן. objectMetadataBeforeאובייקט מכיל את המטא-נתונים של האובייקט לפני הניסיון לבצע את הפעולה באצווה. objectMetadataBefore.gcsObjectאובייקט פרטים על האובייקט. objectMetadataBefore.gcsObject.bucketString שם הקטגוריה שבה נמצא האובייקט. objectMetadataBefore.gcsObject.generationString מספר הגנרציה של האובייקט לפני הפעולה. objectMetadataBefore.gcsObject.objectKeyString הנתיב המלא של האובייקט בתוך הקטגוריה. תוכן
jsonPayloadספציפי לפעולהההבדל בין רשומות ביומן של פעולות שונות באצווה הוא באובייקט ברמה העליונה שמוטמע בתוך
jsonPayload. רק אחד מהאובייקטים הבאים זמין ברשומת יומן נתונה, בהתאם לפעולת האצווה הספציפית שבוצעה:מחיקת האובייקט (
DeleteObject)jsonPayload: { "DeleteObject": { "objectMetadataBefore": { "gcsObject": { "bucket": "test-bucket", "generation": "1678912345678901", "objectKey": "test_object.txt" } } } }החזקת אובייקט (
PutObjectHold)jsonPayload: { "PutObjectHold": { "objectMetadataBefore": { "gcsObject": { "bucket": "test-bucket", "generation": "1678912345678901", "objectKey": "test_object.txt" } }, "temporaryHoldAfter": True, "eventBasedHoldAfter": True } }כתיבה מחדש של אובייקט (
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" } }הוספת מטא-נתונים (
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" } } }
בטבלה הבאה מתוארים שדות היומן הספציפיים לפעולה:
שדות ביומן שספציפיים לפעולה סוג תיאור PutObjectHoldאובייקט מציין פעולת השהיה באובייקט. PutObjectHold.temporaryHoldAfterבוליאני אם הערך הוא True, סימן שהוחלה השהיה זמנית על האובייקט אחרי שהמשימה של פעולות רבות על פריטי אחסון הסתיימה. הערכים התקינים הםTrueאוFalse.PutObjectHold.eventBasedHoldAfterבוליאני אם הערך הוא True, סימן שהוחלה על האובייקט החזקה מבוססת-אירוע אחרי שהסתיימה המשימה של הפעולות הרבות על פריטי אחסון. הערכים התקינים הםTrueאוFalse.RewriteObjectאובייקט מציין פעולת שכתוב של אובייקט. RewriteObject.kmsKeyVersionAfterString גרסת המפתח של Cloud Key Management Service שבה נעשה שימוש אחרי משימת הכתיבה מחדש. השדה kmsKeyVersionAfterמאוכלס אם מפתח ההצפנה של האובייקט השתנה כתוצאה מהכתיבה מחדש. זה שדה אופציונלי, כלומר יכול להיות שהוא לא יופיע אם גרסת המפתח של Cloud KMS לא השתנתה אחרי הכתיבה מחדש.PutMetadataאובייקט מציינת פעולה של עדכון מטא-נתונים באובייקט. PutMetadata.content_disposition_afterString מציין את ערך הכותרת Content-Dispositionאחרי השלמת המשימהPutMetadata. זהו שדה אופציונלי והוא מאוכלס רק אם הוגדר או שונה מאפיין ה-content-disposition.PutMetadata.content_encoding_afterString מציין את ערך הכותרת Content-Encodingאחרי השלמת המשימהPutMetadata. זהו שדה אופציונלי והוא מאוכלס רק אם קידוד התוכן הוגדר או שונה.PutMetadata.content_language_afterString מציין את ערך הכותרת Content-Languageאחרי השלמת המשימהPutMetadata. זהו שדה אופציונלי והוא מאוכלס רק אם שפת התוכן הוגדרה או שונתה.PutMetadata.content_type_afterString מציין את ערך הכותרת Content-Typeאחרי השלמת המשימהPutMetadata. זהו שדה אופציונלי והוא מאוכלס רק אם סוג התוכן הוגדר או שונה.PutMetadata.cache_control_afterString מציין את ערך הכותרת Cache-Controlאחרי השלמת המשימהPutMetadata. זהו שדה אופציונלי והוא מאוכלס רק אם בקרת המטמון הוגדרה או שונתה.PutMetadata.custom_time_afterString מציין את ערך הכותרת Custom-Timeאחרי השלמת המשימהPutMetadata. זהו שדה אופציונלי והוא מאוכלס רק אם הזמן המותאם אישית הוגדר או שונה.PutMetadata.custom_metadata_afterמפה (מפתח: מחרוזת, ערך: מחרוזת) מכיל מפה של צמדי מפתח/ערך מסוג Custom- Metadataאחרי הטרנספורמציה. השדה הזה כולל את כל המטא-נתונים שהמשתמש הגדיר או שינה באובייקט. הוא מאפשר אחסון גמיש של מטא-נתונים נוספים.