אחרי שמשלימים העברה באמצעות Storage Transfer Service, יכול להיות שתרצו להתחיל משימה נוספת, לטפל בשגיאה שנתקלתם בה במהלך ההעברה או לתעד שההעברה התרחשה. שירות Pub/Sub מספק תור שהתוכניות שלכם נרשמות אליו כדי לקבל הודעות כשהעברה מסתיימת. כך אפשר לעשות שימוש חוזר בקוד ולתכנת את השלבים הבאים על סמך מצב ההעברה.
מידע נוסף על Pub/Sub זמין במאמר מהו Cloud Pub/Sub
דרישות מוקדמות
לפני שמשתמשים בתכונה הזו, צריך:
מפעילים את Pub/Sub API בפרויקט שמקבל התראות Pub/Sub.
לוודא שיש לכם נושא Pub/Sub שאליו אתם רוצים לשלוח התראות.
השגת כתובת האימייל של חשבון השירות שמשויך לפרויקט שמכיל את הקטגוריה של Storage Transfer Service.
- מקצים לחשבון השירות את תפקיד ה-IAM
roles.pubsub.publisherלנושא Pub/Sub הרצוי.
- מקצים לחשבון השירות את תפקיד ה-IAM
הגדרת ההתראות
כדי להגדיר את ההגדרות של התראות Pub/Sub ב-Storage Transfer Service, משתמשים ב-Storage Transfer Service transferJobs API כדי ליצור הודעת NotificationConfig. הנושא יקבל התראות בערוץ Pub/Sub שהוגדר.
צריך לציין בהודעה אל NotificationConfig את הפרטים הבאים:
- נושא Pub/Sub שאליו צריך לשלוח את ההתראות
- הפורמט של ההודעה,
"JSON"או"NONE" סוגי האירועים הרצויים, שמתאימים לסטטוס 'הושלם' של
TransferOperation.Statuses:"TRANSFER_OPERATION_SUCCESS""TRANSFER_OPERATION_FAILED""TRANSFER_OPERATION_ABORTED"
הודעת NotificationConfig לדוגמה:
{
...
"notificationConfig": {
"pubsubTopic": "projects/project-id/topics/topic-id",
"eventTypes": ["TRANSFER_OPERATION_SUCCESS"],
"payloadFormat": "JSON"
},
...
}
מחליפים את מה שכתוב בשדות הבאים:
-
project-id: מזהה הפרויקט ב-Google Cloud של ההעברה -
topic-id: שם נושא ה-Pub/Sub
מידע נוסף זמין במאמר מפרט REST של Pub/Sub ב-Storage Transfer Service.
פורמט ההתראות
ההתראות שנשלחות לנושא Pub/Sub כוללות שני חלקים:
- המאפיינים: קבוצה של צמדי מפתח/ערך שמתארים את האירוע.
- המטען הייעודי (Payload) : מחרוזת שמכילה את המטא-נתונים של האובייקט שהשתנה.
מאפיינים
המאפיינים הם צמדי מפתח/ערך שכלולים בכל ההתראות שנשלחות מ-Storage Transfer Service לנושא Pub/Sub. ההתראות תמיד כוללות את הקבוצה הבאה של צמדי מפתח/ערך, בלי קשר למטען הייעודי (Payload) של ההתראה:
מידע נוסף על פורמט ההודעות ב-Pub/Sub זמין במאמר PubsubMessage.
| שם המאפיין | דוגמה | תיאור |
|---|---|---|
eventType |
TRANSFER_OPERATION_SUCCESS |
הסטטוס של TransferOperation, מ-NotificationConfig.EventType |
payloadFormat |
"JSON" |
הפורמט של ההודעה, "JSON" או "NONE". מתוך NotificationConfig.PayloadFormat. |
projectId |
project-3 |
המזהה של פרויקט המארח של ההעברה. |
transferJobName |
transferJobs/123 |
שם העברת הנתונים. |
transferOperationName |
transferOperations/456 |
שם פעולת ההעברה. |
Payload
המטען הייעודי (Payload) מכיל את המטא-נתונים TransferOperation. כשיוצרים הגדרת התראה צריך לציין את סוג המטען הייעודי (Payload) שייכלל בהתראות שההגדרה הזו מפעילה. אפשר לציין מטען ייעודי (Payload) מהסוגים הבאים:
| סוג המטען הייעודי (Payload) | תיאור |
|---|---|
| NONE | ההתראה לא כוללת מטען ייעודי (Payload). |
| JSON | המטען הייעודי מעוצב כתגובת JSON, בפורמט application/json. |
דוגמאות להגדרות של התראות Pub/Sub
התראות רק על העברות שנכשלו
כדי לקבל הודעות רק על העברות שנכשלו, שולחים TransferJob עם NotificationConfig שמסנן רק העברות שנכשלו:
// REST JSON format:
// https://cloud.google.com/storage-transfer/docs/create-manage-transfer-program
{
...
"notificationConfig": {
"pubsubTopic": "projects/project-id/topics/topic-id",
"eventTypes": ["TRANSFER_OPERATION_FAILED"],
"payloadFormat: "JSON"
},
...
}
מחליפים את מה שכתוב בשדות הבאים:
-
project-id: מזהה הפרויקט ב-Google Cloud של ההעברה -
topic-id: שם נושא ה-Pub/Sub
התראה על כל ההעברות שהושלמו
כדי לקבל הודעה על כל ההעברות שהושלמו, בלי קשר לסטטוס, שולחים TransferJob עם NotificationConfig בלי מסנני EventType:
// REST JSON format:
// https://cloud.google.com/storage-transfer/docs/create-manage-transfer-program
{
...
"notificationConfig": {
"pubsubTopic": "projects/project-id/topics/topic-id",
"payloadFormat: "JSON"
},
...
}
מחליפים את מה שכתוב בשדות הבאים:
-
project-id: מזהה הפרויקט ב-Google Cloud של ההעברה -
topic-id: שם נושא ה-Pub/Sub
ביצוע פעולות שרירותיות בהעברה
כדי לבצע פעולה שרירותית, יוצרים התראה ב-Pub/Sub באמצעות פונקציית Cloud עם טריגר Pub/Sub בשילוב עם פונקציית Cloud ברקע. מידע נוסף זמין במדריך ל-Cloud Pub/Sub.
דוגמאות לפעולות שרירותיות:
התחייבויות מסירה
Storage Transfer Service שולח התראות על כל TransferOperations התחלה אחרי שמוסיפים הגדרת התראה, ומבטיח מסירה לפחות פעם אחת ל-Pub/Sub. גם ב-Pub/Sub יש אפשרות של לפחות מסירה אחת לנמען, כך שיכול להיות שתקבלו כמה הודעות עם כמה מזהים, שמייצגות את אותו אירוע ב-Storage Transfer Service.
אין התחייבות שההתראות יפורסמו לפי הסדר שבו התקבלו ב-Pub/Sub.
אם אי אפשר לשלוח התראות לנושא Pub/Sub מסוים באופן עקבי, יכול להיות שההתראה תימחק מ-Storage Transfer Service אחרי 7 ימים. כשל במסירה עשוי לקרות כשנושא Pub/Sub כבר לא קיים, כש-Storage Transfer Service כבר לא מקבל הרשאה לפרסם בנושא הזה או כשהפרויקט שהנושא בבעלותו חורג ממכסת הפרסום שלו.