「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
。
執行範本
控制台
- 前往 Dataflow 的「Create job from template」(透過範本建立工作) 頁面。 前往「依據範本建立工作」
- 在「工作名稱」欄位中,輸入專屬工作名稱。
- 選用:如要使用區域端點,請從下拉式選單中選取值。預設區域為
us-central1
。如需可執行 Dataflow 工作的地區清單,請參閱「Dataflow 位置」。
- 從「Dataflow template」(Dataflow 範本) 下拉式選單中選取 JMS to Pub/Sub template。
- 在提供的參數欄位中輸入參數值。
- 按一下「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 伺服器搭配使用的使用者名稱對應密碼。
後續步驟
- 瞭解 Dataflow 範本。
- 請參閱 Google 提供的範本清單。