נושא ייבוא של Cloud Storage מאפשר להטמיע נתונים באופן רציף מ-Cloud Storage ב-Pub/Sub. לאחר מכן תוכלו להזרים את הנתונים לכל אחד מהיעדים ש-Pub/Sub תומך בהם. Pub/Sub מזהה באופן אוטומטי אובייקטים חדשים שנוספו לקטגוריה של Cloud Storage ומבצע להם הטמעה.
Cloud Storage הוא שירות לאחסון אובייקטים ב-Google Cloud. אובייקט הוא חלק של נתונים שלא ניתן לשינוי, שמורכב מקובץ בכל סוג של פורמט. האובייקטים מאוחסנים בקונטיינרים שנקראים קטגוריות. קטגוריות יכולות להכיל גם תיקיות מנוהלות, שמשמשות למתן גישה מורחבת לקבוצות של אובייקטים עם קידומת משותפת של שם.
מידע נוסף על Cloud Storage זמין במאמרי העזרה של Cloud Storage.
מידע נוסף על ייבוא נושאים זמין במאמר מידע על ייבוא נושאים.
לפני שמתחילים
כדי ליצור נושא לייבוא מ-Cloud Storage, צריך קודם ליצור קטגוריה של Cloud Storage. אם משתמשים במסוף כדי ליצור את נושא הייבוא, אפשר ליצור קטגוריה של Cloud Storage בתהליך העבודה. לשיטות הגדרה אחרות, ראו יצירת קטגוריות.
אם רלוונטי, מוודאים שכללי המדיניות לאחסון הודעות בנושא Pub/Sub חופפים לאזור שבו נמצאת הקטגוריה של Cloud Storage. מידע נוסף זמין במאמר מדיניות אחסון ההודעות תואמת למיקום של המאגר.
לחלק Google Cloud מהשירותים יש חשבונות שירות Google Cloudבניהול Google שמאפשרים לשירותים לגשת למשאבים שלכם. חשבונות השירות האלה נקראים סוכני שירות. Pub/Sub יוצרת חשבון שירות לכל פרויקט בפורמט
service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com, ומנהלת אותו. מגדירים את התפקידים וההרשאות הנדרשים בחשבון השירות של Pub/Sub כדי לנהל נושאי ייבוא של Cloud Storage, כולל:מקצים את התפקיד 'פרסום הודעות ב-Pub/Sub' (
roles/pubsub.publisher) לחשבון השירות של Pub/Sub. חשבון השירות הזה יפרסם בנושא הייבוא. כדי להקצות את התפקיד הזה, צריך חשבון משתמש עם התפקיד 'אדמין Pub/Sub' (roles/pubsub.admin). מידע נוסף זמין במאמר הוספת התפקיד 'פרסום הודעות ב-Pub/Sub' לחשבון השירות של Pub/Sub.נותנים לחשבון השירות של Pub/Sub הרשאות ב-Cloud Storage. כדי לתת את ההרשאות האלה, צריך חשבון משתמש עם התפקיד 'אדמין של Storage' (
roles/storage.admin). מידע נוסף זמין במאמר הקצאת תפקידים ב-Cloud Storage לחשבון השירות של Pub/Sub.
תפקידים והרשאות נדרשים
כדי לקבל את ההרשאות שנדרשות ליצירה ולניהול של נושא ייבוא מ-Cloud Storage, בקשו מהאדמין להקצות לכם את התפקיד עריכת Pub/Sub (roles/pubsub.editor) ב-IAM בנושא או בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד מוגדר מראש שכולל את ההרשאות שנדרשות כדי ליצור ולנהל נושא לייבוא מ-Cloud Storage. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי ליצור ולנהל נושא ייבוא של Cloud Storage, צריך את ההרשאות הבאות:
-
יוצרים נושא לייבוא:
pubsub.topics.create -
מחיקת נושא ייבוא:
pubsub.topics.delete -
קבלת נושא ייבוא:
pubsub.topics.get -
הצגת נושא ייבוא:
pubsub.topics.list -
פרסום בנושא ייבוא:
pubsub.topics.publish -
כדי לעדכן נושא ייבוא:
pubsub.topics.update -
אחזור מדיניות IAM לנושא ייבוא:
pubsub.topics.getIamPolicy -
מגדירים את מדיניות ה-IAM בנושא ייבוא:
pubsub.topics.setIamPolicy
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
אפשר להגדיר בקרת גישה ברמת הפרויקט וברמת המשאב הבודד.
המדיניות בנושא אחסון הודעות תואמת למיקום הקטגוריה
מדיניות אחסון ההודעות של נושא Pub/Sub צריכה לחפוף לאזורים שבהם נמצאת הקטגוריה של Cloud Storage. המדיניות הזו קובעת איפה מותר ל-Pub/Sub לאחסן את נתוני ההודעות שלכם.
לקטגוריות עם סוג המיקום 'אזור': המדיניות חייבת לכלול את האזור הספציפי הזה. לדוגמה, אם הקטגוריה נמצאת באזור
us-central1, מדיניות אחסון ההודעות צריכה לכלול גם אתus-central1.לקטגוריות עם סוג מיקום של שני אזורים או מספר אזורים: המדיניות חייבת לכלול לפחות אזור אחד במיקום של שני אזורים או מספר אזורים. לדוגמה, אם הקטגוריה נמצאת ב-
US multi-region, מדיניות אחסון ההודעות יכולה לכלול אתus-central1, אתus-east1או כל אזור אחר ב-US multi-region.אם המדיניות לא כוללת את האזור של הקטגוריה, יצירת הנושא תיכשל. לדוגמה, אם הקטגוריה נמצאת ב-
europe-west1ומדיניות אחסון ההודעות כוללת רק אתasia-east1, תתקבל הודעת שגיאה.אם מדיניות אחסון ההודעות כוללת רק אזור אחד שחופף למיקום של הקטגוריה, יכול להיות שהיתירות במספר אזורים תיפגע. אם האזור היחיד הזה לא יהיה זמין, יכול להיות שלא תהיה לכם גישה לנתונים. כדי להבטיח יתירות מלאה, מומלץ לכלול לפחות שני אזורים במדיניות אחסון ההודעות, שהם חלק מהמיקום של הקטגוריה במספר אזורים או בשני אזורים.
מידע נוסף על מיקומי הקטגוריות זמין במסמכי התיעוד.
הפעלת הפרסום
כדי לאפשר פרסום, צריך להקצות את התפקיד "פרסום הודעות ב-Pub/Sub" לחשבון השירות של Pub/Sub, כדי ש-Pub/Sub יוכל לפרסם בנושא הייבוא של Cloud Storage.
הפעלת פרסום בכל נושאי הייבוא של Cloud Storage
בוחרים באפשרות הזו אם אין נושא ייבוא של Cloud Storage בפרויקט.
נכנסים לדף IAM במסוף Google Cloud .
מסמנים את התיבה Include Google-provided role grants.
מחפשים את חשבון השירות של Pub/Sub בפורמט הבא:
service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.comלוחצים על הלחצן Edit Principal (עריכת חשבון המשתמש) בחשבון השירות הזה.
אם צריך, לוחצים על Add another role.
מחפשים ובוחרים את התפקיד 'פרסום הודעות ב-Pub/Sub' (
roles/pubsub.publisher).לוחצים על Save.
הפעלת פרסום בנושא יבוא יחיד ב-Cloud Storage
כדי להעניק ל-Pub/Sub הרשאה לפרסם בנושא ספציפי של ייבוא ל-Cloud Storage שכבר קיים, פועלים לפי השלבים הבאים:
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
מריצים את הפקודה
gcloud pubsub topics add-iam-policy-binding:gcloud pubsub topics add-iam-policy-binding TOPIC_ID\ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com"\ --role="roles/pubsub.publisher"
מחליפים את מה שכתוב בשדות הבאים:
TOPIC_ID הוא המזהה או השם של נושא הייבוא של Cloud Storage.
PROJECT_NUMBER הוא מספר הפרויקט. במאמר זיהוי פרויקטים מוסבר איך לראות את מספר הפרויקט.
הקצאת תפקידים ב-Cloud Storage לחשבון השירות של Pub/Sub
כדי ליצור נושא לייבוא מ-Cloud Storage, לחשבון השירות של Pub/Sub צריכה להיות הרשאת קריאה מקטגוריית Cloud Storage ספציפית. נדרשות ההרשאות הבאות:
storage.objects.liststorage.objects.getstorage.buckets.get
כדי להקצות את ההרשאות האלה לחשבון השירות של Pub/Sub, בוחרים באחת מהפעולות הבאות:
הענקת הרשאות ברמת הקטגוריה. בקטגוריה הספציפית של Cloud Storage, מקצים לחשבון השירות של Pub/Sub את התפקידים "קריאת אובייקטים באחסון מדור קודם" (
roles/storage.legacyObjectReader) ו"קריאה בקטגוריה באחסון מדור קודם" (roles/storage.legacyBucketReader).אם אתם חייבים להקצות תפקידים ברמת הפרויקט, אתם יכולים במקום זאת להקצות את התפקיד 'אדמין לניהול אחסון' (
roles/storage.admin) בפרויקט שמכיל את הקטגוריה של Cloud Storage. מקצים את התפקיד הזה לחשבון השירות של Pub/Sub.
הרשאות של קטגוריות
כדי להקצות את התפקידים 'קריאת אובייקטים באחסון מדור קודם' (roles/storage.legacyObjectReader) ו'קריאה בקטגוריה באחסון מדור קודם' (roles/storage.legacyBucketReader) לחשבון השירות של Pub/Sub ברמת הקטגוריה, מבצעים את השלבים הבאים:
פותחים את הדף Cloud Storage במסוף Google Cloud .
לוחצים על הקטגוריה של Cloud Storage שממנה רוצים לקרוא הודעות ולייבא אותן לנושא הייבוא של Cloud Storage.
הדף Bucket details נפתח.
בדף Bucket details, לוחצים על הכרטיסייה Permissions.
בכרטיסייה Permissions > View by Principals, לוחצים על Grant access.
נפתח הדף הענקת גישה.
בקטע Add Principals, מזינים את השם של חשבון השירות של Pub/Sub.
הפורמט של חשבון השירות הוא
service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com. לדוגמה, אם PROJECT_NUMBER=112233445566, חשבון השירות יהיה בפורמטservice-112233445566@gcp-sa-pubsub.iam.gserviceaccount.com.בתפריט הנפתח Assign roles > Select a role, מזינים
Object Readerובוחרים את התפקיד Storage Legacy Object Reader.לוחצים על הוספת תפקיד נוסף.
בתפריט הנפתח Select a role, מזינים
Bucket Readerובוחרים את התפקיד Storage Legacy Bucket Reader.לוחצים על Save.
הרשאות לפרויקט
כדי להקצות את התפקיד Storage Admin (roles/storage.admin) ברמת הפרויקט, מבצעים את השלבים הבאים:
נכנסים לדף IAM במסוף Google Cloud .
בכרטיסייה Permissions > View by Principals, לוחצים על Grant access.
נפתח הדף הענקת גישה.
בקטע Add Principals (הוספת חשבונות משתמשים), מזינים את השם של חשבון השירות של Pub/Sub.
הפורמט של חשבון השירות הוא
service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com. לדוגמה, אם PROJECT_NUMBER=112233445566, חשבון השירות יהיה בפורמטservice-112233445566@gcp-sa-pubsub.iam.gserviceaccount.com.בתפריט הנפתח Assign roles > Select a role, מזינים
Storage Adminובוחרים את התפקיד Storage Admin.לוחצים על Save.
למידע נוסף על IAM ב-Cloud Storage, קראו את המאמר ניהול זהויות והרשאות גישה ב-Cloud Storage.
מאפיינים של נושאים לייבוא ב-Cloud Storage
מידע נוסף על המאפיינים המשותפים לכל הנושאים זמין במאמר מאפיינים של נושא.
שם הקטגוריה
זהו השם של קטגוריה של Cloud Storage שממנה Pub/Sub קורא את הנתונים שמתפרסמים בנושא ייבוא של Cloud Storage.
פורמט קלט
כשיוצרים נושא ייבוא של Cloud Storage, אפשר לציין את הפורמט של האובייקטים שייקלטו כ-Text, Avro או Pub/Sub Avro.
טקסט. ההנחה היא שהאובייקטים מכילים נתונים בטקסט פשוט. פורמט הקלט הזה מנסה להטמיע את כל האובייקטים בקטגוריה, כל עוד האובייקט עומד בזמן המינימלי ליצירת אובייקט ומתאים לקריטריונים של תבנית glob.
תו מפריד. אפשר גם לציין תו מפריד שלפיו האובייקטים יפוצלו להודעות. אם לא מגדירים תו מפריד, ברירת המחדל היא תו מעבר לשורה (
\n). התו המפריד חייב להיות תו יחיד.Avro. האובייקטים הם בפורמט Apache Avro binary. כל אובייקט שלא בפורמט תקין של Apache Avro לא נטמע. אלה המגבלות שקשורות ל-Avro:
- אין תמיכה בגרסאות 1.1.0 ו-1.2.0 של Avro.
- הגודל המקסימלי של בלוק Avro הוא 16MB.
Pub/Sub Avro. האובייקטים הם בפורמט הבינארי של Apache Avro עם סכימה שתואמת לסכימה של אובייקט שנכתב ב-Cloud Storage באמצעות מינוי ל-Cloud Storage ב-Pub/Sub עם פורמט הקובץ Avro. ריכזנו כאן כמה הנחיות חשובות לגבי Pub/Sub Avro:
שדה הנתונים של רשומת Avro משמש לאכלוס שדה הנתונים של הודעת Pub/Sub שנוצרה.
אם האפשרות write_metadata צוינה במינוי ל-Cloud Storage, כל הערכים בשדה המאפיינים יאוכלסו כמאפיינים של הודעת Pub/Sub שנוצרה.
אם מפתח סידור מצוין בהודעה המקורית שנכתבה ב-Cloud Storage, השדה הזה מאוכלס כמאפיין עם השם
original_message_ordering_keyבהודעת Pub/Sub שנוצרה.
זמן יצירת האובייקט המינימלי
כשיוצרים נושא לייבוא ב-Cloud Storage, אפשר לציין זמן מינימלי ליצירת אובייקט. רק אובייקטים שנוצרו בתאריך ובשעה שמופיעים בחותמת הזמן הזו או אחריהם ייכללו בייבוא. חותמת הזמן הזו צריכה להיות בפורמט כמו YYYY-MM-DDThh:mm:ssZ.
כל תאריך, בעבר או בעתיד, בין 0001-01-01T00:00:00Z ל-9999-12-31T23:59:59Z כולל, הוא תקין.
התאמה לתבנית glob
כשיוצרים נושא ייבוא של Cloud Storage, אפשר לציין אופציונלית תבנית glob להתאמה. רק אובייקטים עם שמות שתואמים לתבנית הזו נטמעים. לדוגמה, כדי להטמיע את כל האובייקטים עם הסיומת .txt, אפשר לציין את תבנית ה-glob **.txt.
מידע נוסף על התחביר הנתמך של תבניות glob מופיע במסמכי התיעוד של Cloud Storage.
שימוש בנושאי ייבוא של Cloud Storage
אתם יכולים ליצור נושא ייבוא חדש או לערוך נושא קיים.
לתשומת ליבכם
- יצירה של הנושא והמינוי בנפרד, גם אם היא מתבצעת ברצף מהיר, עלולה לגרום לאובדן נתונים. יש חלון זמן קצר שבו הנושא קיים ללא מינוי. אם נשלחים נתונים לנושא במהלך פרק הזמן הזה, הם אובדים. אם יוצרים את הנושא קודם, ואז יוצרים את המינוי וממירים את הנושא לנושא ייבוא, אפשר להבטיח שלא יפספסו הודעות במהלך תהליך הייבוא.
יצירת נושא ייבוא ב-Cloud Storage
כדי ליצור נושא לייבוא מ-Cloud Storage:
המסוף
נכנסים לדף Topics במסוף Google Cloud .
לוחצים על Create topic.
דף הפרטים של הנושא נפתח.
בשדה Topic ID (מזהה הנושא), מזינים מזהה לנושא הייבוא של Cloud Storage.
למידע נוסף על מתן שמות לנושאים, ראו הנחיות למתן שמות.
בוחרים באפשרות הוספת מינוי ברירת מחדל.
לוחצים על הפעלת הטמעה.
בקטע 'מקור ההטמעה', בוחרים באפשרות Google Cloud Storage.
בקטע קטגוריה של Cloud Storage, לוחצים על Browse.
הדף Select bucket נפתח. בוחרים באחת מהאפשרויות הבאות:
בוחרים דלי קיים מכל פרויקט מתאים.
לוחצים על סמל היצירה ופועלים לפי ההוראות במסך כדי ליצור מאגר חדש. אחרי שיוצרים את הקטגוריה, בוחרים אותה לנושא הייבוא של Cloud Storage.
כשמציינים את הקטגוריה, Pub/Sub בודק אם לחשבון השירות של Pub/Sub יש את ההרשאות המתאימות בקטגוריה. אם יש בעיות בהרשאות, תופיע הודעה דומה לזו:
Unable to verify if the Pub/Sub service agent has write permissions on this bucket. You may be lacking permissions to view or set permissions.אם יש בעיות בהרשאות, לוחצים על הגדרת הרשאות. מידע נוסף זמין במאמר הענקת הרשאות Cloud Storage לחשבון השירות של Pub/Sub.
בשדה Object format, בוחרים באפשרות Text, Avro או Pub/Sub Avro.
אם בוחרים באפשרות Text, אפשר לציין Delimiter כדי לפצל אובייקטים להודעות.
מידע נוסף על האפשרויות האלה זמין במאמר בנושא פורמט קלט.
זה שינוי אופציונלי. אפשר לציין זמן מינימלי ליצירת אובייקט לנושא. אם מוגדר ערך, המערכת תבצע המרה רק של אובייקטים שנוצרו אחרי זמן היצירה המינימלי של האובייקט.
למידע נוסף, ראו זמן מינימלי ליצירת אובייקט.
צריך לציין תבנית Glob. כדי להטמיע את כל האובייקטים בקטגוריה, משתמשים ב-
**בתור תבנית ה-glob. אם המאפיין מוגדר, המערכת מבצעת המרה רק של אובייקטים שתואמים לתבנית שצוינה.מידע נוסף מופיע במאמר בנושא התאמה של תבנית glob.
משאירים את שאר הגדרות ברירת המחדל.
לוחצים על יצירת נושא.
gcloud
מפעילים את Cloud Shell במסוף Google Cloud .
בחלק התחתון של מסוף Google Cloud יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
מריצים את הפקודה
gcloud pubsub topics create:gcloud pubsub topics create TOPIC_ID \ --cloud-storage-ingestion-bucket=BUCKET_NAME \ --cloud-storage-ingestion-input-format=INPUT_FORMAT \ --cloud-storage-ingestion-text-delimiter=TEXT_DELIMITER \ --cloud-storage-ingestion-minimum-object-create-time=MINIMUM_OBJECT_CREATE_TIME \ --cloud-storage-ingestion-match-glob=MATCH_GLOBבפקודה, רק
TOPIC_ID, הדגל--cloud-storage-ingestion-bucketוהדגל--cloud-storage-ingestion-input-formatנדרשים. שאר הדגלים הם אופציונליים ואפשר להשמיט אותם.מחליפים את מה שכתוב בשדות הבאים:
-
TOPIC_ID: השם או המזהה של הנושא. -
BUCKET_NAME: ציון השם של קטגוריה קיימת. לדוגמה,prod_bucket. שם הקטגוריה לא יכול לכלול את מזהה הפרויקט. במאמר יצירת קטגוריות מוסבר איך ליצור קטגוריה. -
INPUT_FORMAT: מציין את הפורמט של האובייקטים שמועברים. הערך יכול להיותtext,avroאוpubsub_avro. מידע נוסף על האפשרויות האלה זמין במאמר בנושא פורמט קלט.
TEXT_DELIMITER: מציין את התו שמגדיר את סוף השורה, שבאמצעותו יפוצלו אובייקטים של טקסט להודעות Pub/Sub. התו המפריד צריך להיות תו יחיד, וצריך להגדיר אותו רק אם הערך שלINPUT_FORMATהואtext. ברירת המחדל היא תו השורה החדשה (\n).כשמשתמשים ב-CLI של gcloud כדי לציין את התו שמפריד בין הערכים, צריך לשים לב במיוחד לטיפול בתווים מיוחדים כמו מעבר שורה
\n. כדי לוודא שהתו שמפריד בין הערכים יפורש בצורה נכונה, צריך להשתמש בפורמט'\n'. שימוש ב-\nבלי מרכאות או בלי תווי escape יגרום לשימוש ב-"n"כתו מפריד.
MINIMUM_OBJECT_CREATE_TIME: מציין את הזמן המינימלי שחלף מאז שאובייקט נוצר כדי שאפשר יהיה להוסיף אותו. הערך צריך להיות בפורמט UTCYYYY-MM-DDThh:mm:ssZ. לדוגמה,2024-10-14T08:30:30Z.כל תאריך, בעבר או בעתיד, מ-
0001-01-01T00:00:00Zעד9999-12-31T23:59:59Zכולל, הוא תקין.
MATCH_GLOB: מציין את תבנית ה-glob להתאמה כדי שאובייקט ייקלט. כשמשתמשים ב-CLI של gcloud, אם יש ב-glob של ההתאמה תווים של*, צריך להוסיף לפני התו*את התו כדי לבטל את המשמעות המיוחדת שלו, כלומר להשתמש בפורמט\*\*.txt, או להוסיף את כל ה-glob של ההתאמה במירכאות"**.txt"או'**.txt'. מידע על התחביר הנתמך של תבניות glob מופיע במאמרי העזרה של Cloud Storage.
-
C++
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של C++ במאמר תחילת העבודה: שימוש בספריות לקוח. מידע נוסף זמין במאמרי העזרה של Pub/Sub C++ API.
המשך
בדוגמה הבאה נעשה שימוש בגרסה הראשית של ספריית הלקוח של Pub/Sub ב-Go (גרסה 2). אם אתם עדיין משתמשים בספרייה v1, כדאי לעיין במדריך להעברת נתונים ל-v2. כדי לראות רשימה של דוגמאות קוד מגרסה 1, אפשר לעיין ב דוגמאות הקוד שהוצאו משימוש.
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Go במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במסמכי העזר של ה-API של Pub/Sub Go.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במאמר התחלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Java API.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במאמר תחילת העבודה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Node.js API.
Node.ts
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Node.js API.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של ה-API בשפת Python של Pub/Sub.
נתקלתם בבעיות? היעזרו במאמר בנושא פתרון בעיות בייבוא של Cloud Storage.
עריכת נושא של ייבוא מ-Cloud Storage
אתם יכולים לערוך נושא ייבוא של Cloud Storage כדי לעדכן את המאפיינים שלו.
לדוגמה, כדי להפעיל מחדש את ההטמעה, אפשר לשנות את הקטגוריה או לעדכן את הזמן המינימלי ליצירת אובייקט.
כדי לערוך נושא ייבוא של Cloud Storage, מבצעים את השלבים הבאים:
המסוף
-
נכנסים לדף Topics במסוף Google Cloud .
-
לוחצים על נושא הייבוא של Cloud Storage.
-
בדף הפרטים של הנושא, לוחצים על עריכה.
-
מעדכנים את השדות שרוצים לשנות.
-
לוחצים על עדכון.
gcloud
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
כדי לא לאבד את ההגדרות של נושא הייבוא, חשוב לכלול את כל ההגדרות בכל פעם שמעדכנים את הנושא. אם משאירים משהו בחוץ, Pub/Sub מאפס את ההגדרה לערך ברירת המחדל המקורי שלה.
מריצים את הפקודה
gcloud pubsub topics updateעם כל הדגלים שמוזכרים בדוגמה הבאה:gcloud pubsub topics update TOPIC_ID \ --cloud-storage-ingestion-bucket=BUCKET_NAME\ --cloud-storage-ingestion-input-format=INPUT_FORMAT\ --cloud-storage-ingestion-text-delimiter=TEXT_DELIMITER\ --cloud-storage-ingestion-minimum-object-create-time=MINIMUM_OBJECT_CREATE_TIME\ --cloud-storage-ingestion-match-glob=MATCH_GLOB
מחליפים את מה שכתוב בשדות הבאים:
-
TOPIC_ID הוא המזהה או השם של הנושא. אי אפשר לעדכן את השדה הזה.
-
BUCKET_NAME: ציון השם של קטגוריה קיימת. לדוגמה,
prod_bucket. שם הקטגוריה לא יכול לכלול את מזהה הפרויקט. במאמר יצירת קטגוריות מוסבר איך ליצור קטגוריה. -
INPUT_FORMAT: מציין את הפורמט של האובייקטים שמועברים. הערך יכול להיות
text,avroאוpubsub_avro. מידע נוסף על האפשרויות האלה מופיע במאמר בנושא פורמט קלט. -
TEXT_DELIMITER: מציין את התו שמגדיר את סוף השורה, שבאמצעותו יפוצלו אובייקטים של טקסט להודעות Pub/Sub. התו המפריד צריך להיות תו יחיד, וצריך להגדיר אותו רק אם הערך של
INPUT_FORMATהואtext. ברירת המחדל היא תו השורה החדשה (\n).כשמשתמשים ב-CLI של gcloud כדי לציין את התו שמפריד בין הערכים, צריך לשים לב במיוחד לטיפול בתווים מיוחדים כמו מעבר שורה
\n. כדי לוודא שהמערכת תפרש את התו המפריד בצורה נכונה, צריך להשתמש בפורמט'\n'. אם משתמשים ב-\nבלי מירכאות או תווי בריחה, התוצאה היא תו מפריד של"n". -
MINIMUM_OBJECT_CREATE_TIME: מציין את הזמן המינימלי שחלף מאז שאובייקט נוצר כדי שאפשר יהיה להוסיף אותו. הערך צריך להיות בפורמט UTC
YYYY-MM-DDThh:mm:ssZ. לדוגמה,2024-10-14T08:30:30Z.כל תאריך, בעבר או בעתיד, מ-
0001-01-01T00:00:00Zעד9999-12-31T23:59:59Zכולל, הוא תקין. -
MATCH_GLOB: מציין את תבנית ה-glob להתאמה כדי שאובייקט ייקלט. כשמשתמשים ב-CLI של gcloud, אם יש ב-glob של ההתאמה תווים של
*, צריך להוסיף לפני התו*את התו כדי לבטל את המשמעות המיוחדת שלו, כלומר להשתמש בפורמט\*\*.txt, או להוסיף את כל ה-glob של ההתאמה במירכאות"**.txt"או'**.txt'. מידע על התחביר הנתמך של תבניות glob מופיע ב מסמכי Cloud Storage.
-
מכסות ומגבלות בנושא ייבוא ל-Cloud Storage
התפוקה של בעל התוכן הדיגיטלי בנושאים של ייבוא מוגבלת על ידי מכסת הפרסום של הנושא. מידע נוסף זמין במאמר בנושא מכסות ומגבלות ב-Pub/Sub.
המאמרים הבאים
הפעלת יומני פלטפורמה לנושא ייבוא של Cloud Storage.
בוחרים את סוג המינוי לנושא.