תבנית Pub/Sub ל-Pub/Sub

תבנית Pub/Sub to Pub/Sub היא צינור סטרימינג שקורא הודעות ממינוי Pub/Sub וכותב את ההודעות לנושא Pub/Sub אחר. צינור עיבוד הנתונים מקבל גם מפתח אופציונלי של מאפיין ההודעה וערך שאפשר להשתמש בו כדי לסנן את ההודעות שצריך לכתוב לנושא Pub/Sub. אפשר להשתמש בתבנית הזו כדי להעתיק הודעות ממינוי Pub/Sub לנושא אחר ב-Pub/Sub, עם אפשרות להוסיף מסנן הודעות.

הדרישות לגבי צינורות עיבוד נתונים

  • מינוי Pub/Sub של המקור צריך להתקיים לפני ההפעלה.
  • מינוי המקור ל-Pub/Sub חייב להיות מינוי שליפה.
  • נושא היעד ב-Pub/Sub חייב להתקיים לפני ההפעלה.

פרמטרים של תבניות

פרמטרים נדרשים

  • ‫inputSubscription: המינוי ל-Pub/Sub שממנו ייקרא הקלט. לדוגמה, projects/your-project-id/subscriptions/your-subscription-name.
  • ‫outputTopic: נושא Pub/Sub שאליו ייכתב הפלט. לדוגמה, projects/your-project-id/topics/your-topic-name.

פרמטרים אופציונליים

  • ‫filterKey: מפתח המאפיין שישמש לסינון אירועים. אם לא מציינים את filterKey, לא מוחלים מסננים.
  • ‫filterValue: ערך המאפיין שמשמש לסינון אירועים כשמספקים filterKey. כברירת מחדל, נעשה שימוש בערך null‏ filterValue.

הרצת התבנית

המסוף

  1. עוברים לדף Create job from template (יצירת משימה מתבנית) ב-Dataflow.
  2. כניסה לדף Create job from template
  3. בשדה שם המשימה, מזינים שם ייחודי למשימה.
  4. אופציונלי: בשדה Regional endpoint (נקודת קצה אזורית), בוחרים ערך מהתפריט הנפתח. אזור ברירת המחדל הוא us-central1.

    רשימה של אזורים שבהם אפשר להריץ משימת Dataflow מופיעה במאמר מיקומי Dataflow.

  5. בתפריט הנפתח תבנית Dataflow, בוחרים את התבנית Pub/Sub to Pub/Sub.
  6. בשדות הפרמטרים שמופיעים, מזינים את ערכי הפרמטרים.
  7. אופציונלי: כדי לעבור מעיבוד של כל נתון בדיוק פעם אחת אל מצב סטרימינג של כל נתון לפחות פעם אחת, בוחרים באפשרות לפחות פעם אחת.
  8. לוחצים על הפעלת העבודה.

gcloud

במעטפת או בטרמינל, מריצים את התבנית:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Cloud_PubSub_to_Cloud_PubSub \
    --region REGION_NAME \
    --staging-location STAGING_LOCATION \
    --parameters \
inputSubscription=projects/PROJECT_ID/subscriptions/SUBSCRIPTION_NAME,\
outputTopic=projects/PROJECT_ID/topics/TOPIC_NAME,\
filterKey=FILTER_KEY,\
filterValue=FILTER_VALUE

מחליפים את מה שכתוב בשדות הבאים:

  • ‫JOB_NAME: שם ייחודי של המשימה לפי בחירתכם
  • ‫REGION_NAME: האזור שבו רוצים לפרוס את עבודת Dataflow, לדוגמה: us-central1
  • ‫VERSION: הגרסה של התבנית שרוצים להשתמש בה

    אפשר להשתמש בערכים הבאים:

    • latest כדי להשתמש בגרסה העדכנית של התבנית, שזמינה בתיקיית ההורה ללא תאריך בדלי – gs://dataflow-templates/latest/
    • שם הגרסה, כמו 2023-09-12-00_RC00, כדי להשתמש בגרסה ספציפית של התבנית. אפשר למצוא את הגרסה הזו בתיקיית ההורה המתאימה עם התאריך בדלי – gs://dataflow-templates/
  • ‫STAGING_LOCATION: המיקום של קבצים מקומיים להעברה (לדוגמה, gs://your-bucket/staging)
  • ‫SUBSCRIPTION_NAME: השם של המינוי ל-Pub/Sub
  • ‫TOPIC_NAME: שם הנושא ב-Pub/Sub
  • ‫FILTER_KEY: מפתח המאפיין שלפיו מסננים את האירועים. אם לא מציינים מפתח, לא מוחלים מסננים.
  • ‫FILTER_VALUE: ערך מאפיין של מסנן לשימוש אם מוגדר מפתח מסנן אירועים. מקבל מחרוזת Java Regex תקינה כערך של מסנן אירועים. אם מספקים ביטוי רגולרי, ההודעה תסונן רק אם היא תואמת לביטוי המלא. התאמות חלקיות (כמו מחרוזת משנה) לא מסוננות. כברירת מחדל, נעשה שימוש בערך מסנן אירועים מסוג null.

API

כדי להפעיל את התבנית באמצעות API בארכיטקטורת REST, שולחים בקשת HTTP POST. מידע נוסף על ה-API ועל היקפי ההרשאות שלו זמין במאמר projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Cloud_PubSub_to_Cloud_PubSub
{
   "jobName": "JOB_NAME",
   "environment": {
       "ipConfiguration": "WORKER_IP_UNSPECIFIED",
       "additionalExperiments": []
    },
   "parameters": {
       "inputSubscription": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_NAME",
       "outputTopic": "projects/PROJECT_ID/topics/TOPIC_NAME",
       "filterKey": "FILTER_KEY",
       "filterValue": "FILTER_VALUE"
   }
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט שבו רוצים להריץ את משימת Google Cloud Dataflow
  • ‫JOB_NAME: שם ייחודי של המשימה לפי בחירתכם
  • ‫LOCATION: האזור שבו רוצים לפרוס את עבודת Dataflow, לדוגמה: us-central1
  • ‫VERSION: הגרסה של התבנית שרוצים להשתמש בה

    אפשר להשתמש בערכים הבאים:

    • latest כדי להשתמש בגרסה העדכנית של התבנית, שזמינה בתיקיית ההורה ללא תאריך בדלי – gs://dataflow-templates/latest/
    • שם הגרסה, כמו 2023-09-12-00_RC00, כדי להשתמש בגרסה ספציפית של התבנית. אפשר למצוא את הגרסה הזו בתיקיית ההורה המתאימה עם התאריך בדלי – gs://dataflow-templates/
  • ‫STAGING_LOCATION: המיקום של קבצים מקומיים להעברה (לדוגמה, gs://your-bucket/staging)
  • ‫SUBSCRIPTION_NAME: השם של המינוי ל-Pub/Sub
  • ‫TOPIC_NAME: שם הנושא ב-Pub/Sub
  • ‫FILTER_KEY: מפתח המאפיין שלפיו מסננים את האירועים. אם לא מציינים מפתח, לא מוחלים מסננים.
  • ‫FILTER_VALUE: ערך מאפיין המסנן לשימוש אם מוגדר מפתח מסנן אירועים. מקבל מחרוזת Java Regex תקינה כערך של מסנן אירועים. אם מספקים ביטוי רגולרי, ההודעה תסונן רק אם היא תואמת לביטוי המלא. התאמות חלקיות (כמו מחרוזת משנה) לא מסוננות. כברירת מחדל, נעשה שימוש בערך מסנן אירועים מסוג null.

המאמרים הבאים