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 da 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
- Aceda à página do fluxo de dados Criar tarefa a partir de um modelo. Aceda a Criar tarefa a partir de modelo
- No campo Nome da tarefa, introduza um nome exclusivo para a tarefa.
- 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 as localizações do Dataflow.
- No menu pendente Modelo do fluxo de dados, selecione JMS to Pub/Sub template.
- Nos campos de parâmetros fornecidos, introduza os valores dos parâmetros.
- 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?
- Saiba mais sobre os modelos do Dataflow.
- Consulte a lista de modelos fornecidos pela Google.