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)
テンプレートを実行する
コンソール
- Dataflow の [テンプレートからジョブを作成] ページに移動します。 [テンプレートからジョブを作成] に移動
- [ジョブ名] フィールドに、固有のジョブ名を入力します。
- (省略可)[リージョン エンドポイント] で、プルダウン メニューから値を選択します。デフォルトのリージョンは
us-central1
です。Dataflow ジョブを実行できるリージョンのリストについては、Dataflow のロケーションをご覧ください。
- [Dataflow テンプレート] プルダウン メニューから、[ JMS to Pub/Sub template] を選択します。
- 表示されたパラメータ フィールドに、パラメータ値を入力します。
- [ジョブを実行] をクリックします。
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 提供のテンプレートのリストを確認する。