O modelo de JMS para Pub/Sub é um pipeline de streaming que lê as mensagens do servidor JMS do ActiveMQ (fila/tópico) e as grava no Pub/Sub.
Requisitos do pipeline
- O nome do tópico de saída do Pub/Sub precisa existir.
- O IP de host do JMS precisa existir e ter a configuração de rede adequada a fim de que as VMs de worker do Dataflow acessem o host do JMS.
- O tópico/fila do JMS do qual os dados são extraídos precisa ter um nome.
Parâmetros do modelo
Parâmetros obrigatórios
- inputName : o nome do tópico ou da fila do JMS em que os dados são lidos. (Exemplo: queue).
- inputType : o tipo de destino do JMS em que os dados serão lidos. Pode ser uma fila ou um tópico. (Exemplo: queue).
- outputTopic : o nome do tópico do Pub/Sub em que os dados serão publicados, no formato
projects/<PROJECT_ID>/topics/<TOPIC_NAME>
. (Exemplo: projects/your-project-id/topics/your-topic-name). - username : o nome de usuário a ser usado na autenticação no servidor JMS. (Exemplo: sampleusername).
- password : a senha associada ao nome de usuário fornecido. (Exemplo: samplepassword).
Parâmetros opcionais
- jmsServer : o IP do servidor JMS (ActiveMQ). (Exemplo: tcp://10.0.0.1:61616).
Executar o modelo
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. A região padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione JMS to Pub/Sub template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No 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
Substitua os valores a seguir neste exemplo:
- Substitua YOUR_PROJECT_ID pelo ID do projeto.
- Substitua pelo nome da região do Dataflow. Por exemplo,
us-central1
. - Substitua JOB_NAME por um nome de job de sua escolha. O nome do job precisa 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 usuário do servidor JMS. Por exemplo,
testuser
. - Substitua PASSWORD pela senha correspondente ao nome de usuário usado no servidor JMS.
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos 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", } }
Substitua os valores a seguir neste exemplo:
- Substitua YOUR_PROJECT_ID pelo ID do projeto.
- Substitua pelo nome da região do Dataflow. Por exemplo,
us-central1
. - Substitua JOB_NAME por um nome de job de sua escolha. O nome do job precisa 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 usuário do servidor JMS. Por exemplo,
testuser
. - Substitua PASSWORD pela senha correspondente ao nome de usuário usado no servidor JMS.
A seguir
- Saiba mais sobre os modelos do Dataflow.
- Confira a lista de modelos fornecidos pelo Google.