Modèle JMS vers Pub/Sub

Le modèle JMS vers Pub/Sub est un pipeline de traitement en flux continu qui lit les messages du serveur JMS ActiveMQ (file d'attente/sujet) et les écrit dans Pub/Sub.

Conditions requises pour ce pipeline

  • Le nom du sujet de sortie Pub/Sub doit déjà exister.
  • L'adresse IP de l'hôte JMS doit exister et présenter la configuration réseau appropriée pour que les VM de nœud de calcul Dataflow puissent atteindre l'hôte JMS.
  • Le sujet/file d'attente JMS à partir duquel les données sont extraites doit avoir un nom.

Paramètres de modèle

Paramètres obligatoires

  • inputName: nom du sujet ou de la file d'attente JMS à partir duquel les données sont lues. Exemple :queue
  • inputType: type de destination JMS à partir duquel lire les données. Il peut s'agir d'une file d'attente ou d'un sujet. Exemple :queue
  • outputTopic: nom du sujet Pub/Sub dans lequel publier les données. Exemple :projects/<PROJECT_ID>/topics/<TOPIC_NAME>
  • username: nom d'utilisateur à utiliser pour l'authentification sur le serveur JMS. Exemple :sampleusername
  • password: mot de passe associé au nom d'utilisateur fourni. Exemple :samplepassword

Paramètres facultatifs

  • jmsServer: adresse IP du serveur JMS (ActiveMQ). Exemple :tcp://10.0.0.1:61616

Exécuter le modèle

Console

  1. Accédez à la page Dataflow Créer un job à partir d'un modèle.
  2. Accéder à la page Créer un job à partir d'un modèle
  3. Dans le champ Nom du job, saisissez un nom de job unique.
  4. Facultatif : pour Point de terminaison régional, sélectionnez une valeur dans le menu déroulant. La région par défaut est us-central1.

    Pour obtenir la liste des régions dans lesquelles vous pouvez exécuter un job Dataflow, consultez la page Emplacements Dataflow.

  5. Dans le menu déroulant Modèle Dataflow, sélectionnez JMS to Pub/Sub template.
  6. Dans les champs fournis, saisissez vos valeurs de paramètres.
  7. Cliquez sur Run Job (Exécuter la tâche).

gcloud

Dans le shell ou le terminal, exécutez le modèle :

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
  

Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez YOUR_PROJECT_ID par l'ID du projet.
  • Remplacez par le nom de la région Dataflow. Exemple : us-central1.
  • Remplacez JOB_NAME par le nom de tâche de votre choix. Le nom de tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez JMS_SERVER par les adresses du serveur JMS. Par exemple : tcp://10.0.0.0:61616
  • Remplacez INPUT_NAME par le nom du sujet ou de la file d'attente d'entrée du serveur JMS. Exemple : testtopic.
  • Remplacez INPUT_TYPE par le type de destination du serveur JMS (file d'attente/sujet). Par exemple : topic
  • Remplacez OUTPUT_TOPIC par le nom du sujet de sortie Pub/Sub. Exemple : projects/myproject/topics/testoutput.
  • Remplacez USERNAME par le nom d'utilisateur du serveur JMS. Exemple : testuser.
  • Remplacez PASSWORD par le mot de passe correspondant au nom d'utilisateur associé au serveur JMS.

API

Pour exécuter le modèle à l'aide de l'API REST, envoyez une requête HTTP POST. Pour en savoir plus sur l'API et ses champs d'application d'autorisation, consultez la section 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",
   }
}
  

Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez YOUR_PROJECT_ID par l'ID du projet.
  • Remplacez par le nom de la région Dataflow. Exemple : us-central1.
  • Remplacez JOB_NAME par le nom de tâche de votre choix. Le nom de tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez JMS_SERVER par les adresses du serveur JMS. Par exemple : tcp://10.0.0.0:61616
  • Remplacez INPUT_NAME par le nom du sujet ou de la file d'attente d'entrée du serveur JMS. Exemple : testtopic.
  • Remplacez INPUT_TYPE par le type de destination du serveur JMS (file d'attente/sujet). Par exemple : topic
  • Remplacez OUTPUT_TOPIC par le nom du sujet de sortie Pub/Sub. Exemple : projects/myproject/topics/testoutput.
  • Remplacez USERNAME par le nom d'utilisateur du serveur JMS. Exemple : testuser.
  • Remplacez PASSWORD par le mot de passe correspondant au nom d'utilisateur associé au serveur JMS.

Étape suivante