Storage Transfer Service יכול להאזין להתראות על אירועים ב-Google Cloud כדי להעביר באופן אוטומטי נתונים שנוספו או עודכנו בקטגוריה של Cloud Storage. מידע נוסף על היתרונות של העברות מבוססות-אירועים
העברות מבוססות-אירועים מ-Cloud Storage משתמשות בהתראות Pub/Sub כדי לדעת מתי אובייקטים בקטגוריית המקור שונו או נוספו. מחיקות של אובייקטים לא מזוהות. מחיקה של אובייקט במקור לא מוחקת את האובייקט המשויך בקטגוריית היעד.
העברות מבוססות-אירועים תמיד משתמשות בקטגוריה של Cloud Storage כיעד.
הגדרת ההרשאות
בנוסף להרשאות שנדרשות לכל העברה, העברות מבוססות-אירועים דורשות את התפקיד Pub/Sub Subscriber.
כדי למצוא את השם של סוכן השירות של Storage Transfer Service בפרויקט:
עוברים אל דף העזר של
googleServiceAccounts.get.תיפתח חלונית אינטראקטיבית עם הכותרת Try this method (כדאי לנסות את השיטה הזו).
בחלונית, בקטע Request parameters, מזינים את מזהה הפרויקט. הפרויקט שאתם מציינים כאן צריך להיות הפרויקט שבו אתם משתמשים כדי לנהל את Storage Transfer Service, ויכול להיות שהוא שונה מהפרויקט של באקט המקור.
לוחצים על Execute.
כתובת האימייל של סוכן השירות מוחזרת כערך של
accountEmail. מעתיקים את הערך הזה.כתובת האימייל של סוכן השירות היא בפורמט
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com.מקצים את התפקיד
Pub/Sub Subscriberלסוכן השירות של Storage Transfer Service.מסוף Cloud
פועלים לפי ההוראות במאמר שליטה בגישה דרך מסוף Google Cloud כדי להעניק את התפקיד
Pub/Sub Subscriberלשירות Storage Transfer Service. אפשר להעניק את התפקיד ברמת הנושא, המינוי או הפרויקט.
gcloudCLIפועלים לפי ההוראות במאמר הגדרת מדיניות כדי להוסיף את הקישור הבא:
{ "role": "roles/pubsub.subscriber", "members": [ "serviceAccount:project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com" }
הגדרת Pub/Sub
חשוב לוודא שאתם עומדים בדרישות המוקדמות לשימוש ב-Pub/Sub עם Cloud Storage.
יוצרים התראת Pub/Sub לקטגוריית המקור של Cloud Storage.
אי אפשר לנהל את ההתראות של Pub/Sub באמצעות מסוף Google Cloud . במקום זאת, צריך להשתמש ב-CLI של gcloud או באחת מספריות הלקוח הזמינות.
gcloud storage buckets notifications create gs://SOURCE_BUCKET_NAME --topic=TOPIC_NAME
יוצרים מינוי שליפה לנושא. צריך ליצור מינוי נפרד לכל משימת העברה.
בדוגמה הבאה מוצגת הפקודה ב-Google Cloud CLI ליצירת מינוי מסוג pull. הוראות למסוף וקוד של ספריית לקוחות מופיעים במאמר בנושא יצירת מינוי שליפה.
gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_NAME --ack-deadline=300
יצירת עבודת העברה
אפשר להשתמש במסוף Google Cloud , ב-Google Cloud CLI או ב-API בארכיטקטורת REST כדי ליצור עבודת העברה מבוססת-אירועים.
אל תכללו בשם של עבודת ההעברה מידע רגיש כמו פרטים אישיים מזהים (PII) או נתוני אבטחה. יכול להיות ששמות המשאבים יועברו לשמות של משאבים אחרים ב-Google Cloud, ויוצגו למערכות פנימיות של Google מחוץ לפרויקט שלכם.
מסוף Cloud
נכנסים לדף Create transfer job במסוף Google Cloud .
בוחרים באפשרות Cloud Storage כמקור וכיעד.
במצב התזמון בוחרים באפשרות מבוסס-אירועים ולוחצים על השלב הבא.
בוחרים את דלי המקור להעברה.
בקטע Event stream (זרם אירועים), מזינים את שם המינוי:
projects/PROJECT_NAME/subscriptions/SUBSCRIPTION_IDאפשר להגדיר מסננים ואז ללחוץ על השלב הבא.
בוחרים את דלי היעד להעברה הזו.
אפשר גם להזין שעת התחלה ושעת סיום להעברה. אם לא מציינים שעה, ההעברה תתחיל באופן מיידי ותפעל עד שתופסק באופן ידני.
מציינים את אפשרויות ההעברה הרצויות. מידע נוסף זמין בדף יצירת העברות.
לוחצים על יצירה.
אחרי שיוצרים את משימת ההעברה, היא מתחילה לפעול ורכיב event listener מחכה להתראות במינוי Pub/Sub. בדף פרטי המשרה מוצגת פעולה אחת בכל שעה, והוא כולל פרטים על הנתונים שהועברו בכל משרה.
gcloud
כדי ליצור עבודת העברה מבוססת-אירועים באמצעות Google Cloud CLI, משתמשים בפקודה gcloud transfer jobs create עם הדגל --event-stream-name:
gcloud transfer jobs create \
gs://SOURCE_BUCKET \
gs://DESTINATION_BUCKET \
--event-stream-name=projects/PROJECT_NAME/subscriptions/SUBSCRIPTION_ID \
--event-stream-starts=EVENT_STREAM_STARTS \
--event-stream-expires=EVENT_STREAM_EXPIRES
מחליפים את ה-placeholders בערכים בפועל:
- SOURCE_BUCKET: השם של קטגוריית Cloud Storage של המקור.
- DESTINATION_BUCKET: קטגוריית Cloud Storage של היעד.
- PROJECT_NAME: הפרויקט שמכיל את המינוי ל-Pub/Sub.
- SUBSCRIPTION_ID: המזהה של מינוי Pub/Sub שיצרתם (לדוגמה,
my-subscription). - EVENT_STREAM_STARTS: מתי להתחיל להאזין לאירועים. צריך להשתמש בפורמט התאריך והשעה %Y-%m-%dT%H:%M:%S%z (לדוגמה,
2020-04-12T06:42:12+04:00). אם לא מציינים ערך, העבודה מתחילה לפעול ולהאזין לאירועים אחרי שהפקודה ליצירת העבודה נשלחת בהצלחה. - EVENT_STREAM_EXPIRES: מתי להפסיק להאזין לאירועים. אם לא מוגדר, העבודה נמשכת עד שמפסיקים אותה באופן ידני.
רשימה מלאה של השדות הנתמכים מופיעה במאמר בנושא gcloud transfer jobs create.
REST
כדי ליצור העברה מבוססת-אירועים באמצעות API בארכיטקטורת REST, שולחים את אובייקט ה-JSON הבא לנקודת הקצה transferJobs.create:
transfer_job { "description": "YOUR DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "transferSpec" { "gcsDataSource" { "bucketName": "GCS_SOURCE_NAME" }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } "eventStream" { "name": "projects/PROJECT_NAME/subscriptions/SUBSCRIPTION_ID", "eventStreamStartTime": "2022-12-02T01:00:00+00:00", "eventStreamExpirationTime": "2023-01-31T01:00:00+00:00" } }
הערכים eventStreamStartTime ו-eventStreamExpirationTime הם אופציונליים.
אם לא מציינים את זמן ההתחלה, ההעברה מתחילה באופן מיידי. אם לא מציינים את זמן הסיום, ההעברה נמשכת עד שמפסיקים אותה באופן ידני.
ספריות לקוח
Go
מידע על התקנת ספריית הלקוח של Storage Transfer Service והשימוש בה מופיע במאמר ספריות הלקוח של Storage Transfer Service. למידע נוסף, קראו את מאמרי העזרה של Storage Transfer Service Go API.
כדי לבצע אימות ב-Storage Transfer Service, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
מידע על התקנת ספריית הלקוח של Storage Transfer Service והשימוש בה מופיע במאמר ספריות הלקוח של Storage Transfer Service. למידע נוסף, קראו את מאמרי העזרה של Storage Transfer Service Java API.
כדי לבצע אימות ב-Storage Transfer Service, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
מידע על התקנת ספריית הלקוח של Storage Transfer Service והשימוש בה מופיע במאמר ספריות הלקוח של Storage Transfer Service. למידע נוסף, קראו את מאמרי העזרה של Storage Transfer Service Node.js API.
כדי לבצע אימות ב-Storage Transfer Service, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
מידע על התקנת ספריית הלקוח של Storage Transfer Service והשימוש בה מופיע במאמר ספריות הלקוח של Storage Transfer Service. למידע נוסף, קראו את מאמרי העזרה של Storage Transfer Service Python API.
כדי לבצע אימות ב-Storage Transfer Service, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
מעקב אחרי העברה מבוססת-אירועים
כשיוצרים העברה מבוססת-אירועים, Storage Transfer Service יוצרת משימת העברה. כשהשעה שנקבעה מגיעה, פעולת ההעברה מתחילה לפעול ורכיב event listener מחכה להתראות מתור Pub/Sub.
פעולת ההעברה פועלת, עם סטטוס in progress, במשך כ-24 שעות. אחרי 24 שעות, הפעולה מסתיימת ומתחילה פעולה חדשה.
מבצעים חדש נוצר כל 24 שעות עד שמגיעים לשעת הסיום של משימת ההעברה או עד שמפסיקים את המשימה באופן ידני.
אם העברת קובץ מתבצעת בזמן שהפעולה אמורה להסתיים, הפעולה הנוכחית תמשיך להתבצע עד שהקובץ יועבר במלואו. מתחילה פעולה חדשה, ושתי הפעולות פועלות בו-זמנית עד שהפעולה הישנה מסתיימת. כל האירועים שמזוהים במהלך התקופה הזו מטופלים על ידי הפעולה החדשה.
כדי לראות את הפעולה הנוכחית ואת הפעולות שהושלמו:
מסוף Google Cloud
נכנסים לדף Storage Transfer Service במסוף Google Cloud .
ברשימת המשימות, בוחרים בכרטיסייה הכול או בכרטיסייה Cloud-to-cloud (מענן לענן).
לוחצים על מזהה העבודה של ההעברה. בעמודה מצב תזמון מופיעים כל ההעברות שמבוססות על אירועים לעומת העברות באצווה.
בוחרים בכרטיסייה פעולות. פרטים על הפעולה הנוכחית מוצגים בטבלה Run history. כדי לראות פרטים נוספים, לוחצים על פעולה שהושלמה.
gcloud
כדי לעקוב אחרי ההתקדמות של משימה בזמן אמת, משתמשים בפונקציה gcloud transfer jobs monitor. בתשובה מוצגת הפעולה הנוכחית, שעת ההתחלה של העבודה, כמות הנתונים שהועברו, בייטים שדילגו עליהם וספירת השגיאות.
gcloud transfer jobs monitor JOB_NAME
כדי לאחזר את שם הפעולה הנוכחי:
gcloud transfer jobs describe JOB_NAME --format="value(latestOperationName)"
כדי להציג רשימה של פעולות נוכחיות ופעולות שהושלמו:
gcloud transfer operations list --job-names=JOB_NAME
כדי לראות פרטים על פעולה:
gcloud transfer operations describe OPERATION_NAME