JMS 至 Pub/Sub 範本

「JMS 到 Pub/Sub」範本是一個串流管道,可從 Active MQ JMS 伺服器 (佇列/主題) 讀取訊息,並寫入 Pub/Sub。

管道相關規定

  • Pub/Sub 輸出主題名稱必須存在。
  • JMS 主機 IP 必須存在,且網路設定正確,Dataflow 工作站 VM 才能連上 JMS 主機。
  • 資料擷取來源的 JMS 主題/佇列必須有名稱。

範本參數

必要參數

  • inputName:從中讀取資料的 JMS 主題或佇列名稱。例如:queue
  • inputType:用於讀取資料的 JMS 目的地類型。可以是佇列或主題。例如:queue
  • outputTopic:要將資料發布至其中的 Pub/Sub 主題名稱。例如:projects/<PROJECT_ID>/topics/<TOPIC_NAME>
  • 使用者名稱:在 JMS 伺服器上進行驗證時要使用的使用者名稱。例如:sampleusername
  • password:與所提供使用者名稱相關聯的密碼。例如:samplepassword

選用參數

  • jmsServer:JMS (ActiveMQ) 伺服器 IP。例如:tcp://10.0.0.1:61616

執行範本

控制台

  1. 前往 Dataflow 的「Create job from template」(透過範本建立工作) 頁面。
  2. 前往「依據範本建立工作」
  3. 在「工作名稱」欄位中,輸入專屬工作名稱。
  4. 選用:如要使用區域端點,請從下拉式選單中選取值。預設區域為 us-central1

    如需可執行 Dataflow 工作的地區清單,請參閱「Dataflow 位置」。

  5. 從「Dataflow template」(Dataflow 範本) 下拉式選單中選取 JMS to Pub/Sub template。
  6. 在提供的參數欄位中輸入參數值。
  7. 按一下「Run Job」(執行工作)

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 替換為您的專案 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 替換為 JMS 伺服器目的地類型(佇列/主題)。例如:topic
  • 請將 OUTPUT_TOPIC 改成 Pub/Sub 輸出主題名稱。例如:projects/myproject/topics/testoutput
  • USERNAME 改為 JMS 伺服器的使用者名稱。例如:testuser
  • PASSWORD 替換為與 JMS 伺服器搭配使用的使用者名稱對應密碼。

API

如要使用 REST API 執行範本,請傳送 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 替換為您的專案 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 替換為 JMS 伺服器目的地類型(佇列/主題)。例如:topic
  • 請將 OUTPUT_TOPIC 改成 Pub/Sub 輸出主題名稱。例如:projects/myproject/topics/testoutput
  • USERNAME 改為 JMS 伺服器的使用者名稱。例如:testuser
  • PASSWORD 替換為與 JMS 伺服器搭配使用的使用者名稱對應密碼。

後續步驟