תבנית JMS ל-Pub/Sub

תבנית ה-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.

הרצת התבנית

המסוף

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

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

  5. בתפריט הנפתח Dataflow template (תבנית Dataflow), בוחרים באפשרות JMS to Pub/Sub template (תבנית JMS ל-Pub/Sub).
  6. בשדות הפרמטרים שמופיעים, מזינים את ערכי הפרמטרים.
  7. לוחצים על הפעלת העבודה.

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.

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