נושא ייבוא של 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 שמאפשרים לשירותים לגשת למשאבים שלכם. Google Cloud Google Cloudחשבונות השירות האלה נקראים סוכני שירות. 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.אם המדיניות לא כוללת את האזור של הקטגוריה, יצירת הנושא תיכשל. לדוגמה, אם ה-bucket שלכם נמצא ב-
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 (עריכת חשבון המשתמש) בחשבון השירות הרלוונטי.
אם צריך, לוחצים על הוספת תפקיד נוסף.
מחפשים ובוחרים את התפקיד 'פרסום הודעות ב-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. כל אובייקט שלא נמצא בפורמט Apache Avro תקין לא ייקלט. אלה המגבלות שקשורות ל-Avro:
- אין תמיכה בגרסאות Avro 1.1.0 ו-1.2.0.
- הגודל המקסימלי של בלוק 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 .
לוחצים על יצירת נושא.
ייפתח דף הפרטים של הנושא.
בשדה 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.
אם בוחרים באפשרות טקסט, אפשר לציין תו מפריד שבאמצעותו יפוצלו האובייקטים להודעות.
מידע נוסף על האפשרויות האלה זמין במאמר בנושא פורמט קלט.
זה שינוי אופציונלי. אפשר לציין זמן מינימלי ליצירת אובייקט לנושא. אם מוגדר ערך, המערכת תבצע המרה רק של אובייקטים שנוצרו אחרי זמן היצירה המינימלי של האובייקט.
מידע נוסף זמין במאמר בנושא זמן יצירת אובייקט מינימלי.
צריך לציין תבנית Glob. כדי להטמיע את כל האובייקטים בקטגוריה, משתמשים ב-
**כדפוס glob. אם המאפיין מוגדר, המערכת מבצעת המרה רק של אובייקטים שתואמים לתבנית שצוינה.מידע נוסף מופיע במאמר בנושא התאמה של תבנית glob.
משאירים את שאר הגדרות ברירת המחדל.
לוחצים על יצירת נושא.
gcloud
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של 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.
המשך
בדוגמה הבאה נעשה שימוש בגרסה הראשית של ספריית הלקוח Go Pub/Sub (v2). אם אתם עדיין משתמשים בספרייה v1, כדאי לעיין במדריך להעברה לגרסה v2. כדי לראות רשימה של דוגמאות קוד מגרסה 1, אפשר לעיין ב דוגמאות הקוד שהוצאו משימוש.
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Go במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Go API.
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בלי מרכאות או בלי escape יגרום להגדרת התו"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.
בוחרים את סוג המינוי לנושא.