JMS to Pub/Sub テンプレート

JMS to Pub/Sub テンプレートは、Active MQ JMS サーバー(Queue/Topic)からメッセージを読み取り、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> の形式で指定します(例: projects/your-project-id/topics/your-topic-name)。
  • username: JMS サーバーでの認証に使用するユーザー名。(例: sampleusername)
  • password: 指定したユーザー名に関連付けられているパスワード。(例: samplepassword)

オプション パラメータ

  • jmsServer: JMS(ActiveMQ)サーバー IP。(例: tcp://10.0.0.1:61616)

テンプレートを実行する

コンソール

  1. Dataflow の [テンプレートからジョブを作成] ページに移動します。
  2. [テンプレートからジョブを作成] に移動
  3. [ジョブ名] フィールドに、固有のジョブ名を入力します。
  4. (省略可)[リージョン エンドポイント] で、プルダウン メニューから値を選択します。デフォルトのリージョンは us-central1 です。

    Dataflow ジョブを実行できるリージョンのリストについては、Dataflow のロケーションをご覧ください。

  5. [Dataflow テンプレート] プルダウン メニューから、[ JMS to Pub/Sub template] を選択します。
  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 は、実際のプロジェクト 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 サーバーで使用するユーザー名のパスワードに置き換えます。

次のステップ