תבנית ה-JMS to Pub/Sub היא צינור עיבוד נתונים בסטרימינג שקורא הודעות מ-Active MQ JMS Server (תור/נושא) וכותב אותן ל-Pub/Sub.
הדרישות לגבי צינורות עיבוד נתונים
- השם של נושא הפלט ב-Pub/Sub חייב להיות קיים.
- כתובת ה-IP של מארח ה-JMS צריכה להתקיים ולהיות לה הגדרת רשת מתאימה כדי שמכונות וירטואליות של עובדי Dataflow יוכלו להגיע למארח ה-JMS.
- לנושא או לתור של JMS שממנו מופקים הנתונים צריך להיות שם.
פרמטרים של תבניות
פרמטרים נדרשים
- inputName: השם של נושא או תור JMS שממנו נתונים נקראים. לדוגמה,
queue. - inputType: סוג היעד של JMS שממנו יקראו נתונים. יכול להיות תור או נושא. לדוגמה,
queue. - outputTopic: השם של נושא Pub/Sub שאליו יתפרסמו הנתונים. לדוגמה,
projects/<PROJECT_ID>/topics/<TOPIC_NAME>. - username: שם המשתמש שמשמש לאימות בשרת JMS. לדוגמה,
sampleusername. - password: הסיסמה שמשויכת לשם המשתמש שסופק. לדוגמה,
samplepassword.
פרמטרים אופציונליים
- jmsServer: כתובת ה-IP של שרת ה-JMS (ActiveMQ). לדוגמה,
tcp://10.0.0.1:61616.
הרצת התבנית
המסוף
- עוברים לדף Create job from template (יצירת משימה מתבנית) ב-Dataflow. כניסה לדף Create job from template
- בשדה שם המשימה, מזינים שם ייחודי למשימה.
- אופציונלי: בשדה Regional endpoint (נקודת קצה אזורית), בוחרים ערך מהתפריט הנפתח. אזור ברירת המחדל הוא
us-central1.רשימה של אזורים שבהם אפשר להריץ משימת Dataflow מופיעה במאמר מיקומי Dataflow.
- בתפריט הנפתח Dataflow template (תבנית Dataflow), בוחרים באפשרות JMS to Pub/Sub template (תבנית JMS ל-Pub/Sub).
- בשדות הפרמטרים שמופיעים, מזינים את ערכי הפרמטרים.
- לוחצים על הפעלת העבודה.
gcloud
במעטפת או בטרמינל, מריצים את התבנית:
gcloud dataflow flex-template run JOB_NAME \ --project=YOUR_PROJECT_ID \ --region=REGION_NAME \ --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/JMS_to_Cloud_PubSub \ --parameters \ jmsServer=JMS_SERVER,\ inputName=INPUT_NAME,\ inputType=INPUT_TYPE,\ outputTopic=OUTPUT_TOPIC,\ username=USERNAME,\ password=PASSWORD
בדוגמה הזו צריך להחליף את הערכים הבאים:
- מחליפים את YOUR_PROJECT_ID במזהה הפרויקט.
- מחליפים את בשם האזור של Dataflow. לדוגמה:
us-central1. - מחליפים את JOB_NAME בשם של המשימה לבחירתכם. שם המשרה חייב להתאים לביטוי הרגולרי
[a-z]([-a-z0-9]{0,38}[a-z0-9])?כדי להיחשב כתקין. - מחליפים את JMS_SERVER בכתובות של שרת ה-JMS. לדוגמה:
tcp://10.0.0.0:61616 - מחליפים את INPUT_NAME בשם של נושא או תור הקלט של שרת JMS. לדוגמה:
testtopic. - מחליפים את INPUT_TYPE ב-Destination Type (סוג היעד) של שרת ה-JMS (תור או נושא). לדוגמה:
topic - מחליפים את OUTPUT_TOPIC בשם של נושא הפלט ב-Pub/Sub. לדוגמה:
projects/myproject/topics/testoutput. - מחליפים את USERNAME בשם המשתמש של שרת ה-JMS. לדוגמה:
testuser. - מחליפים את PASSWORD בסיסמה שמתאימה לשם המשתמש שמשמש את שרת ה-JMS.
API
כדי להפעיל את התבנית באמצעות API בארכיטקטורת REST, שולחים בקשת HTTP POST. מידע נוסף על ה-API ועל היקפי ההרשאות שלו זמין במאמר projects.templates.launch.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch { "launch_parameter": { "jobName": "JOB_NAME", "parameters": { "jmsServer": "JMS_SERVER", "inputName": "INPUT_NAME", "inputType": "INPUT_TYPE", "outputTopic": "OUTPUT_TOPIC", "username": "USERNAME", "password": "PASSWORD" }, "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/VERSION/flex/JMS_to_Cloud_PubSub", } }
בדוגמה הזו צריך להחליף את הערכים הבאים:
- מחליפים את YOUR_PROJECT_ID במזהה הפרויקט.
- מחליפים את בשם האזור של Dataflow. לדוגמה:
us-central1. - מחליפים את JOB_NAME בשם של המשימה לבחירתכם. שם המשרה חייב להתאים לביטוי הרגולרי
[a-z]([-a-z0-9]{0,38}[a-z0-9])?כדי להיחשב כתקין. - מחליפים את JMS_SERVER בכתובות של שרת ה-JMS. לדוגמה:
tcp://10.0.0.0:61616 - מחליפים את INPUT_NAME בשם של נושא או תור הקלט של שרת JMS. לדוגמה:
testtopic. - מחליפים את INPUT_TYPE ב-Destination Type (סוג היעד) של שרת ה-JMS (תור או נושא). לדוגמה:
topic - מחליפים את OUTPUT_TOPIC בשם של נושא הפלט ב-Pub/Sub. לדוגמה:
projects/myproject/topics/testoutput. - מחליפים את USERNAME בשם המשתמש של שרת ה-JMS. לדוגמה:
testuser. - מחליפים את PASSWORD בסיסמה שמתאימה לשם המשתמש שמשמש את שרת ה-JMS.