Modelo de JMS para Pub/Sub

O modelo JMS para Pub/Sub é um pipeline de streaming que lê mensagens do servidor JMS Active MQ (fila/tópico) e escreve-as no Pub/Sub.

Requisitos do pipeline

  • O nome do tópico de saída do Pub/Sub tem de existir.
  • O IP do anfitrião JMS tem de existir e ter a configuração de rede adequada para que as VMs de trabalho do Dataflow alcancem o anfitrião JMS.
  • O tópico/fila JMS a partir do qual os dados são extraídos tem de ter um nome.

Parâmetros de modelos

Parâmetros obrigatórios

  • inputName: o nome do tópico ou da fila JMS a partir do qual os dados são lidos. Por exemplo, queue.
  • inputType: o tipo de destino JMS a partir do qual ler dados. Pode ser uma fila ou um tópico. Por exemplo, queue.
  • outputTopic: o nome do tópico do Pub/Sub para publicar dados. Por exemplo, projects/<PROJECT_ID>/topics/<TOPIC_NAME>.
  • username: o nome de utilizador a usar para autenticação no servidor JMS. Por exemplo, sampleusername.
  • password: a palavra-passe associada ao nome de utilizador facultado. Por exemplo, samplepassword.

Parâmetros opcionais

  • jmsServer: o IP do servidor JMS (ActiveMQ). Por exemplo, tcp://10.0.0.1:61616.

Execute o modelo

Consola

  1. Aceda à página Dataflow Criar tarefa a partir de um modelo.
  2. Aceda a Criar tarefa a partir de modelo
  3. No campo Nome da tarefa, introduza um nome exclusivo para a tarefa.
  4. Opcional: para Ponto final regional, selecione um valor no menu pendente. A região predefinida é us-central1.

    Para ver uma lista das regiões onde pode executar uma tarefa do Dataflow, consulte o artigo Localizações do Dataflow.

  5. No menu pendente Modelo do fluxo de dados, selecione JMS to Pub/Sub template.
  6. Nos campos de parâmetros fornecidos, introduza os valores dos parâmetros.
  7. Clique em Executar tarefa.

gcloud

Na shell ou no terminal, execute o modelo:

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
  

Tem de substituir os seguintes valores neste exemplo:

  • Substitua YOUR_PROJECT_ID pelo ID do seu projeto.
  • Substitua pelo nome da região do Dataflow. Por exemplo: us-central1.
  • Substitua JOB_NAME por um nome de trabalho à sua escolha. O nome da tarefa tem de corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua JMS_SERVER pelos endereços do servidor JMS. Por exemplo: tcp://10.0.0.0:61616
  • Substitua INPUT_NAME pelo nome do tópico/fila de entrada do servidor JMS. Por exemplo: testtopic.
  • Substitua INPUT_TYPE pelo tipo de destino do servidor JMS(fila/tópico). Por exemplo: topic
  • Substitua OUTPUT_TOPIC pelo nome do tópico de saída do Pub/Sub. Por exemplo: projects/myproject/topics/testoutput.
  • Substitua USERNAME pelo nome de utilizador do servidor JMS. Por exemplo: testuser.
  • Substitua PASSWORD pela palavra-passe que corresponde ao nome de utilizador usado com o servidor JMS.

API

Para executar o modelo através da API REST, envie um pedido HTTP POST. Para mais informações sobre a API e os respetivos âmbitos de autorização, consulte 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",
   }
}
  

Tem de substituir os seguintes valores neste exemplo:

  • Substitua YOUR_PROJECT_ID pelo ID do seu projeto.
  • Substitua pelo nome da região do Dataflow. Por exemplo: us-central1.
  • Substitua JOB_NAME por um nome de trabalho à sua escolha. O nome da tarefa tem de corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua JMS_SERVER pelos endereços do servidor JMS. Por exemplo: tcp://10.0.0.0:61616
  • Substitua INPUT_NAME pelo nome do tópico/fila de entrada do servidor JMS. Por exemplo: testtopic.
  • Substitua INPUT_TYPE pelo tipo de destino do servidor JMS(fila/tópico). Por exemplo: topic
  • Substitua OUTPUT_TOPIC pelo nome do tópico de saída do Pub/Sub. Por exemplo: projects/myproject/topics/testoutput.
  • Substitua USERNAME pelo nome de utilizador do servidor JMS. Por exemplo: testuser.
  • Substitua PASSWORD pela palavra-passe que corresponde ao nome de utilizador usado com o servidor JMS.

O que se segue?