Plantilla de JMS a Pub/Sub

La plantilla de JMS a Pub/Sub es una canalización de transmisión que lee mensajes del servidor JMS (cola/tema) de ActiveMQ y los escribe en Pub/Sub.

Requisitos de la canalización

  • El nombre del tema de salida de Pub/Sub debe existir.
  • La IP de host de JMS debe existir y tener la configuración de red adecuada para que las VMs de trabajador de Dataflow lleguen al host de JMS.
  • El tema o la cola de JMS de la que se extraen los datos debe tener un nombre.

Parámetros de la plantilla

Parámetros obligatorios

  • inputName: Nombre de tema o cola de JMS para leer la entrada. (Ejemplo: queue).
  • inputType: Tipo de destino de JMS para leer la entrada. (Ejemplo: queue).
  • outputTopic: El nombre del tema en el que se deben publicar los datos, en el formato “projects/your-project-id/topics/your-topic-name” (ejemplo: projects/your-project- id/topics/your-topic-name).
  • username: Nombre de usuario de JMS para la autenticación con el servidor JMS (ejemplo: sampleusername).
  • password: Contraseña para el nombre de usuario proporcionado para la autenticación con el servidor JMS (ejemplo: samplepassword).

Parámetros opcionales

  • jmsServer: IP del servidor para el host JMS (ejemplo: host:5672).

Ejecuta la plantilla

Consola

  1. Ve a la página Crear un trabajo a partir de una plantilla de Dataflow.
  2. Ir a Crear un trabajo a partir de una plantilla
  3. En el campo Nombre del trabajo, ingresa un nombre de trabajo único.
  4. Opcional: Para Extremo regional, selecciona un valor del menú desplegable. La región predeterminada es us-central1.

    Para obtener una lista de regiones en las que puedes ejecutar un trabajo de Dataflow, consulta Ubicaciones de Dataflow.

  5. En el menú desplegable Plantilla de Dataflow, selecciona JMS to Pub/Sub template.
  6. En los campos de parámetros proporcionados, ingresa los valores de tus parámetros.
  7. Haga clic en Ejecutar trabajo.

gcloud

En tu shell o terminal, ejecuta la plantilla:

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
  

En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza YOUR_PROJECT_ID por el ID del proyecto.
  • Reemplaza por el nombre de la región de Dataflow. Por ejemplo: us-central1.
  • Reemplaza JOB_NAME por un nombre de trabajo a elección. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza JMS_SERVER por las direcciones del servidor JMS. Por ejemplo: tcp://10.0.0.0:61616.
  • Reemplaza INPUT_NAME por el nombre de tema o cola de entrada del servidor JMS. Por ejemplo: testtopic.
  • Reemplaza INPUT_TYPE por el tipo de destino del servidor JMS (cola/tema). Por ejemplo: topic.
  • Reemplaza OUTPUT_TOPIC por el nombre del tema de salida de Pub/Sub. Por ejemplo: projects/myproject/topics/testoutput.
  • Reemplaza USERNAME por el nombre de usuario para el servidor JMS. Por ejemplo: testuser.
  • Reemplaza PASSWORD por la contraseña que corresponde al nombre de usuario usado con el servidor JMS.

API

Para ejecutar la plantilla con la API de REST, envía una solicitud HTTP POST. Para obtener más información sobre la API y sus permisos de autorización, consulta 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",
   }
}
  

En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza YOUR_PROJECT_ID por el ID del proyecto.
  • Reemplaza por el nombre de la región de Dataflow. Por ejemplo: us-central1.
  • Reemplaza JOB_NAME por un nombre de trabajo a elección. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza JMS_SERVER por las direcciones del servidor JMS. Por ejemplo: tcp://10.0.0.0:61616.
  • Reemplaza INPUT_NAME por el nombre de tema o cola de entrada del servidor JMS. Por ejemplo: testtopic.
  • Reemplaza INPUT_TYPE por el tipo de destino del servidor JMS (cola/tema). Por ejemplo: topic.
  • Reemplaza OUTPUT_TOPIC por el nombre del tema de salida de Pub/Sub. Por ejemplo: projects/myproject/topics/testoutput.
  • Reemplaza USERNAME por el nombre de usuario para el servidor JMS. Por ejemplo: testuser.
  • Reemplaza PASSWORD por la contraseña que corresponde al nombre de usuario usado con el servidor JMS.

¿Qué sigue?