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>
- username: JMS サーバーでの認証に使用するユーザー名。例:
sampleusername
- password: 指定したユーザー名に関連付けられているパスワード。例:
samplepassword
オプション パラメータ
- jmsServer: JMS(ActiveMQ)サーバー IP。例:
tcp://10.0.0.1:61616
テンプレートを実行する
- Dataflow の [テンプレートからジョブを作成] ページに移動します。 [テンプレートからジョブを作成] に移動
- [ジョブ名] フィールドに、固有のジョブ名を入力します。
- (省略可)[リージョン エンドポイント] で、プルダウン メニューから値を選択します。デフォルトのリージョンは
us-central1
です。Dataflow ジョブを実行できるリージョンのリストについては、Dataflow のロケーションをご覧ください。
- [Dataflow テンプレート] プルダウン メニューから、[ JMS to Pub/Sub template] を選択します。
- 表示されたパラメータ フィールドに、パラメータ値を入力します。
- [ジョブを実行] をクリックします。
シェルまたはターミナルで、テンプレートを実行します。
gcloud dataflow flex-template runJOB_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 サーバーで使用するユーザー名のパスワードに置き換えます。
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 提供のテンプレートのリストを確認する。