Gatilhos

Gatilhos são eventos que iniciam a execução de um fluxo de integração. Eles podem ser acionados por uma variedade de fontes, como serviços de armazenamento em nuvem, mensagens, e-mails, protocolos de comunicação, agendadores e muito mais.

Veja abaixo uma lista de gatilhos disponíveis para fluxos do tipo Source:

azure blob service logo
Azure Storage Blob Service

s3 logo
AWS S3 Storage Service

sqs logo
AWS Simple Queue Service (SQS)

cron logo
Cron

fhir logo
FHIR

ftp logo
FTP

ftps logo
FTPS

google cloud pub sub logo
Google Pub/Sub

google storage logo
Google Storage

kafka logo
Kafka

imap logo
IMAP

imaps logo
IMAPS

pop3 logo
POP3

pop3s logo
POP3S

smtp logo
SMTP

smtps logo
SMTPS

paho mqtt logo
Paho

paho mqtt logo
Paho MQTT5

quartz logo
Quartz

rest logo
REST

scheduler logo
Scheduler

sftp logo
SFTP

slack icon
Slack

timer logo
Timer

Consulte também a descrição e um exemplo de cada um deles:

Azure Storage Blob Service

  • Descrição: o componente Azure Storage Blob Service é usado para armazenar e recuperar blobs (objeto binário grande) do serviço Azure Storage Blob usando APIs do Azure v12.

  • Exemplo

    • Este fluxo monitora um contêiner no Azure Storage Blob para listar blobs (operation:listBlobs) disponíveis.

    • Quando um novo blob é detectado, o fluxo se conecta a um servidor FTPS para baixar arquivos com a extensão .txt.

    • Os parâmetros são os seguintes:

      • username e password: credenciais para autenticação.

      • includeExt: especifica que apenas arquivos .txt devem ser baixados.

      • delay: o conector verifica a cada 10 segundos por novos arquivos.

      • passiveMode: ativa o modo passivo para a conexão.

    • Após o download, o conteúdo dos arquivos é registrado no log.

Script

Diagrama

- from:
    uri: "azure-storage-blob://camelstorageaccount01/myblobcontainer"
    parameters:
          credentialType: "SHARED_ACCOUNT_KEY"
          operation: "listBlobs"
          accessKey: "{{AWS_ACCESS_KEY}}"
    steps:
      - to:
          uri: "ftps:demo.wftpserver.com/download"
          parameters:
            username: "demo"
            password: "demo"
            includeExt: "txt"
            delay: 10000
            passiveMode: true
      - log:
          loggingLevel: INFO
          message: "Downloaded File Content\n: ${body}"
component azure storage blob service trigger

AWS S3 Storage Service

  • Descrição: o componente AWS S3 Storage Service permite que você interaja com o serviço Amazon S3 (Simple Storage Service) da AWS e manipule dados em buckets S3 diretamente através das rotas de integração.

  • Exemplo

    • O fluxo é ativado por novos eventos em um bucket S3 da AWS (aws2-s3://bucket-s3).

    • Os parâmetros indicam as credenciais utilizadas (contidas em variáveis) e a localização do bucket.

    • Em seguida, o fluxo registra uma mensagem no log com o conteúdo do arquivo ou objeto processado do bucket.

Script

Diagrama

- from:
    uri: "aws2-s3://bucket-s3"
    parameters:
      region: us-east-1
      accessKey: "{{ACCESS_KEY}}"
      secretKey: "{{SECRET_KEY}}"
    steps:
      - log:
          message: "Body: ${body}"
component aws3

AWS Simple Queue Service (SQS)

  • Descrição: o componente AWS SQS oferece suporte ao envio e recebimento de mensagens para o serviço SQS da Amazon.

  • Exemplo

    • O fluxo recebe mensagens de uma fila SQS da AWS. As credenciais de acesso (accessKey e secretKey) permitem que o fluxo se autentique na AWS.

    • As mensagens recebidas são registradas no log com nível info, permitindo que você visualize os dados que foram processados.

Script

Diagrama

- from:
    uri: "aws2-sqs:queueNameOrArn"
    parameters:
      accessKey: "{{accessKey}}"
      secretKey: "{{secretKey}}"
    steps:
      - to:
          uri: "log:info"
component aws sqs trigger

Cron

  • Descrição: o componente Cron permite acionar eventos em intervalos de tempo específicos.

  • Exemplo

    • O trecho abaixo configura um gatilho cron para ser disparado todos os dias ao meio-dia. Depois uma mensagem é registrada no log.

Script

Diagrama

- from:
    uri: cron:cron-expression
    parameters:
      schedule: 0 0 12 * * ?
    steps:
      - log:
          message: integration triggered
component cron

Expressão cron

Uma expressão cron é uma string composta por 6 ou 7 campos separados por espaços em branco. Os campos podem conter quaisquer valores permitidos, juntamente com várias combinações dos caracteres especiais permitidos para aquele campo. Os campos são os seguintes:

Nome do campo Obrigatório Valores permitidos Caracteres especiais permitidos

Segundos

SIM

0-59

, - * /

Minutos

SIM

0-59

, - * /

Hora

SIM

0-23

, - * /

Dia do mês

SIM

1-31

, - * ? / L W

Mês

SIM

1-12 ou JAN-DEC

, - * /

Dia da semana

SIM

1-7 ou SUN-SAT

, - * ? / L #

Ano

NÃO

vazio, 1970-2099

, - * /

Significado dos principais caracteres especiais

Caracter especial Significado

*

Todos os valores do campo.

?

Sem valor específico (usado em campos de "dia do mês" e "dia da semana"). Útil quando você precisa especificar algo em um dos dois campos nos quais o caracter é permitido, mas não no outro. Por exemplo, se eu quiser que meu gatilho dispare em um dia específico do mês (digamos, no dia 10), mas não me importar em qual dia da semana isso acontecerá, eu colocaria “10” no campo do dia do mês e “?” no campo do dia da semana.

-

Faixa de valores (todos os valores incluídos na faixa).

,

Separador de lista de valores (somente os valores especificados).

/

Valores incrementais. Por exemplo, “0/15” no campo segundos significa “nos segundos 0, 15, 30 e 45”.

Exemplos

Expressão cron Significado

0 0 12 * * ?

Dispara às 12h (meio-dia) todos os dias

0 15 10 * * ? 2005

Dispara às 10h15 todos os dias durante o ano de 2005.

0 15 10 15 * ?

Dispara às 10h15 no 15º dia de cada mês.

Para mais informações e exemplos, acesse: Cron Trigger Tutorial (somente em inglês).

O suporte para especificar simultaneamente "dia da semana" e "dia do mês" não está completo. Atualmente, você deve usar o caracter '?' em um desses campos.

Fast Healthcare Interoperability Resources (FHIR)

  • Descrição: o componente FHIR permite a troca padronizada de dados de saúde entre sistemas, garantindo interoperabilidade e consistência na comunicação. Ele define uma estrutura flexível baseada em recursos (resources), que representam entidades clínicas, administrativas e financeiras, permitindo a comunicação padronizada entre diferentes plataformas.

  • Exemplo

    • A integração começa com uma pesquisa em um servidor FHIR que filtra os pacientes pelo sobrenome "Simpson".

    • Após recuperar os dados do servidor FHIR, a resposta é enviada para um endpoint REST.

    • O dado recuperado é processado pelo EIP marshal, garantindo que a resposta seja formatada em FHIR JSON.

    • A versão FHIR usada é R4.

Script

Diagrama

- from:
    uri: fhir:search/searchByUrl
    parameters:
      serverUrl: https://example.aidbox.app/fhir
      url: Patient?family=Simpson
      username: basic
      password: secret
      log: true
    steps:
      - to:
          uri: rest:get:/demo
      - marshal:
          fhirJson:
            fhirVersion: R4
trigger fhir
  • Orientações para uso do componente FHIR

    • A resposta do componente será inserida no body da Exchange como um objeto Java.

      • O objeto varia conforme a API e a versão do protocolo utilizada.

      • Para a versão R4, o objeto estará no pacote org.hl7.fhir.r4.model.

    • Para utilizar o objeto em outros componentes, é necessário convertê-lo para JSON usando o EIP marshal.

      • Utilize o Data Format fhirJson.

      • O Data Format JSON tradicional não é compatível com as classes do FHIR.

    • Os parâmetros do componente não suportam expressions para obter um payload do body.

      • Para isso, utilize o parâmetro inBody.

    • Expressions não podem ser usadas em qualquer campo.

      • Para parametrizar valores, utilize variáveis de ambiente.

FTP/FTPS

  • Descrição: o componente FTP fornece acesso a sistemas de arquivos remotos através dos protocolos FTP e SFTP. Funcionamento apenas no modo passivo.

O FTPS é uma versão segura do FTP, que adiciona suporte para SSL/TLS para criptografar a conexão.
  • Exemplo

    • O fluxo se conecta a um servidor FTP e faz o download de arquivos de texto.

    • Os parâmetros indicam as credenciais usadas para autenticação (username e password) e que o texto deve filtrar e incluir apenas arquivos com a extensão .txt.

    • O fluxo inclui um atraso de 10 segundos entre as tentativas de download e opera em modo passivo.

    • Depois, registra o conteúdo desses arquivos em um log.

Script

Diagrama

- from:
    uri: "ftp://demo.wftpserver.com/download"
    parameters:
      username: "demo"
      password: "demo"
      includeExt: "txt"
      delay: 10000
      passiveMode: true
    steps:
    - log:
        message: "Downloaded File Content\n: ${body}"
component ftp

Google Pub/Sub

  • Descrição: o componente Google Pub/Sub permite a integração com o serviço Google Cloud Pub/Sub para publicar e consumir mensagens. Ele é ideal para comunicação assíncrona entre aplicações, facilitando a troca de dados em cenários distribuídos.

  • Exemplo

    • Uma mensagem é recebida do tópico my-topic no Google Pub/Sub.

    • Os parâmetros incluem:

      • serviceAccountKey: arquivo JSON da conta de serviço usada para autenticação.

      • destinationName: nome do tópico no Google Pub/Sub.

    • O corpo da mensagem é transformado usando a expressão simple. Adiciona-se o texto "Mensagem transformada: " e o conteúdo é convertido para maiúsculas ${body.toUpperCase()}.

    • Um log é registrado com o texto "Mensagem enviada para o tópico Pub/Sub:" seguido da mensagem transformada.

Script

Diagrama

- from:
    id: google-pubsub-3687633689
    uri: google-pubsub:my-project:my-topic
    parameters:
      serviceAccountKey: service-account.json
      destinationName: my-topic
    steps:
      - setBody:
          id: setBody-2320563641
          simple: 'Transformed message: ${body.toUpperCase()}'
      - log:
          id: log-2088714838
          message: 'Message sent to Pub/Sub topic: ${body}'
component google pub sub trigger

Google Storage

  • Descrição: o componente Google Storage permite a integração com o serviço Google Cloud Storage, facilitando o armazenamento e recuperação de objetos em buckets do Google Cloud. Ele pode ser configurado para realizar o download de arquivos de um bucket, permitindo que esses arquivos sejam consumidos e processados em rotas do Camel.

  • Exemplo

    • O fluxo inicia com o Google Storage como gatilho.

    • Faz o download de um arquivo.

    • E depois envia uma mensagem para o log.

Script

Diagrama

- from:
    uri: google-storage:my bucket
    parameters:
      destinationBucket: destination-bucket
      downloadFileName: file-to-download
      serviceAccountKey: my account key
    steps:
      - log:
          message: file downloaded
trigger google storage

Kafka

  • Descrição: o componente Kafka é usado para comunicação com o broker de mensagens Apache Kafka.

  • Exemplo

    • O fluxo inicia ao receber mensagens do tópico Kafka my-topic, com a configuração de brokers.

    • Depois a mensagem recebida é registrada no log para monitoramento e depuração.

Script

Diagrama

- from:
    uri: "kafka:my-topic"
    parameters:
      brokers: "localhost:9092"
    steps:
      - log:
          message: "Mensagem recebida do Kafka: ${body}"
component kafka trigger

Mail

IMAP/IMAPS

  • Descrição: o componentes IMAP é um protocolo utilizado para receber emails, permitindo o acesso a várias pastas de correio e a manipulação de mensagens diretamente no servidor.

    O IMAPS é uma versão segura do IMAP que transmite dados criptografados usando SSL/TLS.
  • Exemplo

    • O fluxo é configurado para se conectar a uma conta de email usando o protocolo IMAP no servidor do Gmail (imap.gmail.com) na porta 993.

    • Parâmetros da URI:

      • o fluxo utiliza as credenciais fornecidas (username e password) para autenticação;

      • está configurado para não excluir emails (delete=false);

      • está configurado para buscar apenas mensagens não lidas (unseen=true).;

      • existe um atraso de 60 segundos (delay=60000), o que significa que ele irá verificar novos emails a cada minuto.

    • Quando um novo email é encontrado, o conteúdo completo do email é registrado em um log.

Script

Diagrama

- from:
    uri: "imaps://imap.gmail.com:993"
    parameters:
      username: "yourusername"
      password: "yourpassword"
      delete: false
      unseen: true
      delay: 60000
    steps:
    - to:
        uri: "log:email"
        parameters:
          showAll: true
component imaps

POP3/POP3S

  • Descrição: o componente POP3 é utilizado para recuperar e-mails de servidores POP3, permitindo que o Camel acesse a caixa de entrada, leia as mensagens e as processe automaticamente em um fluxo de integração.

    O POP3S é uma versão segura do POP3 que transmite dados criptografados usando SSL/TLS.
  • Exemplo

    • O código mostra uma conexão com um servidor de email usando o protocolo POP3 seguro (POP3S) para acessar uma conta do Gmail.

    • Parâmetros da URI:

      • username=yourusername: nome do usuário;

      • password=yourpassword: senha;

      • delete=false: especifica que as mensagens não devem ser deletadas do servidor após serem lidas;

      • unseen=true: indica que apenas as mensagens que ainda não foram lidas devem ser recuperadas;

      • delay=60000: define um atraso de 60 segundos entre cada tentativa de recuperação de novas mensagens.

Script

Diagrama

- from:
    uri: "pop3s://pop.gmail.com:995"
    parameters:
      username: "yourusername"
      password: "yourpassword"
      delete: false
      unseen: true
      delay: 60000
    steps:
    - to:
        uri: "log:email"
        parameters:
          showAll: true
component pop3s

SMTP/SMTPS

  • Descrição: o componente SMTP é utilizado para enviar e-mails a servidores SMTP, permitindo que o Camel envie mensagens com conteúdo personalizado, anexos e destinatários em um fluxo de integração.

O SMTPS é uma versão segura do SMTP que transmite dados criptografados usando SSL/TLS.
  • Exemplo

    • O fluxo utiliza as credenciais fornecidas para autenticar no servidor de e-mails do Gmail, permitindo a recepção de mensagens.

    • Parâmetros da URI:

      • username: "yourusername": o nome de usuário da conta do Gmail que está sendo usada para autenticação.

      • password: "yourpassword": a senha da conta do Gmail.

      • mail.smtp.auth: "auth": este parâmetro indica que a autenticação SMTP deve ser utilizada.

      • mail.smtp.starttls.enable: "starttls": este parâmetro habilita o STARTTLS, um mecanismo para atualizar uma conexão insegura para uma conexão segura usando TLS.

    • Após a recepção, todos os detalhes do e-mail são registrados no log, facilitando a monitoração e a depuração.

Script

Diagrama

- from:
    uri: "smtps://smtp.gmail.com:465"
    parameters:
        username: "yourusername"
        password: "yourpassword"
        mail.smtp.auth: "true"
        mail.smtp.starttls.enable: "true"
    steps:
      - to:
          uri: "log:receivedEmail"
          parameters:
            showAll: true
component smtp trigger

Paho

  • Descrição: o componente Paho permite a integração de aplicações com o protocolo MQTT, facilitando a comunicação entre dispositivos e sistemas em ambientes de Internet das Coisas (IoT).

  • Exemplo

    • O fluxo começa se inscrevendo no tópico sensor/temperature em um broker MQTT, utilizando uma conexão segura via SSL na URL broker.brokername.com:8883.

    • Registra no log uma mensagem com o conteúdo recebido: Got message ${body}.

    • Se uma mensagem com o conteúdo "Sensor data: 24°C" for publicada no tópico sensor/temperature, o log registrará: "Got message Sensor data: 24°C".

Script

Diagrama

- from:
    uri: "paho:sensor/temperature"
    parameters:
      brokerUrl: ssl://broker.brokername.com:8883
    steps:
      - log:
          message: "Got message ${body}"
component paho

Paho MQTT5

  • Descrição: o componente Paho MQTT5 permite a integração de aplicações com o protocolo MQTT (versão 5), oferecendo recursos avançados de mensageria, como sessões persistentes e controle de fluxo.

  • Exemplo

    • O fluxo é idêntico ao fluxo descrito para o componente Paho, com a diferença que este usa a versão 5 do protocolo MQTT.

Script

Diagrama

- from:
    uri: "paho-mqtt5:sensor/temperature"
    parameters:
      brokerUrl: ssl://broker.brokername.com:8883
    steps:
      - log:
          message: "Got message ${body}"
component paho mqtt5

Quartz

  • Descrição: o componente Quartz permite agendar e disparar eventos com base em expressões cron. Ele permite configurar tarefas para serem acionadas em horários regulares, como a cada minuto, hora ou dia, usando a sintaxe cron padrão.

Ver gatilho Cron.
  • Exemplo

    • Um fluxo é acionado todos os dias ao meio-dia. Depois uma mensagem é registrada no log.

Script

Diagrama

- from:
    uri: quartz:/quartz-trigger-name
    parameters:
      cron: 0 0 12 * * ?
    steps:
    - log:
        message: This is a test
component quartz

REST

  • Descrição: o componente REST permite criar e gerenciar endpoints RESTful, facilitando a comunicação entre aplicações por meio do protocolo HTTP. Ele possibilita a definição de rotas que respondem a requisições HTTP (como GET, POST, PUT e DELETE), processando dados, invocando serviços e manipulando informações.

  • Exemplo

    • O fluxo começa com uma requisição POST em /demo.

    • Não há parâmetros adicionais, indicando que serão usadas as configurações padrão do endpoint.

    • Depois uma mensagem é registrada no log.

Script

Diagrama

- from:
    uri: rest:post:/demo
    parameters: {}
    steps:
    - log:
        message: "This is a test"
component rest

Scheduler

  • Descrição: o componente Scheduler é usado para gerar trocas de mensagens quando um agendador dispara.

  • Exemplo

    • No trecho abaixo, a URI mostra um agendador chamado mySchedulerName, que é acionado a cada 60 segundos.

    • Depois uma mensagem é registrada no log.

Script

Diagrama

- from:
    uri: "scheduler:mySchedulerName"
    parameters:
      timeUnit: SECONDS
      delay: 60
    steps:
    - log:
        message: "This is a test"
component scheduler

SFTP

  • Descrição: o componente SFTP fornece acesso a sistemas de arquivos remotos através dos protocolos FTP e SFTP. Funcionamento apenas no modo passivo.

  • Exemplo

    • O fluxo lê arquivos .txt de um servidor SFTP especificado, utilizando um nome de usuário e senha para autenticação.

    • Após o download, o conteúdo dos arquivos é enviado para um log para registro.

Script

Diagrama

- from:
    uri: "sftp:demo.wftpserver.com:2222/download"
    parameters:
      username: "demo"
      password: "demo"
      includeExt: "txt"
      delay: 10000
    steps:
      - to:
          uri: "log:responseLogger"
component sftp trigger

Slack

  • Descrição: o componente Slack permite que você envie mensagens, notificações e alertas para canais ou usuários do Slack diretamente de seus fluxos de integração.

  • Exemplo

    • O fluxo escuta mensagens no canal do Slack especificado.

    • O token de autenticação do Slack está incluído nos parâmetros.

    • Quando uma mensagem é recebida, ela é capturada e registrada no log com o conteúdo.

Script

Diagrama

- from:
    uri: "slack:#channel"
    parameters:
      token: "your-slack-token"
    steps:
      - log:
          message: "Received message from Slack: ${body}"
component slack

Timer

  • Descrição: o componente Timer é usado para gerar trocas de mensagens quando um temporizador dispara.

  • Exemplo

    • No trecho abaixo, a URI mostra um temporizador chamado mytimer, que é acionado a cada 30 segundos (30.000 milissegundos).

Script

Diagrama

- from:
    uri: "timer:mytimer"
    parameters:
      period: 30000
    steps:
      - log:
          message: "This is a test."
component timer
Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]