Gatillos

Gatillos son componentes que activan un flujo de integración. Estos componentes permiten que los flujos se activen por eventos específicos, como la llegada de un mensaje en una cola, la publicación de un mensaje en un tema, la recepción de un correo electrónico o la activación de un temporizador.

Vea a continuación una lista de los gatillos disponibles para flujos del 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 tambiém la descripción y un ejemplo de cada uno de ellos:

Azure Storage Blob Service

  • Descripción: el componente Azure Storage Blob Service se utiliza para almacenar y recuperar blobs (objetos binarios grandes) del servicio Azure Storage Blob utilizando las APIs de Azure v12.

  • Ejemplo

    • El flujo monitorea un contenedor en Azure Storage Blob para listar blobs (operation:listBlobs) disponibles.

    • Cuando se detecta un nuevo blob, el flujo se conecta a un servidor FTPS para descargar archivos con la extensión .txt.

    • Los parámetros son los siguientes:

      • username y password: credenciales para autenticación.

      • includeExt: especifica que solo se deben descargar archivos .txt.

      • delay: el conector verifica cada 10 segundos en busca de nuevos archivos.

      • passiveMode: activa el modo pasivo para la conexión.

    • Después de la descarga, el contenido de los archivos se registra en el 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

  • Descripción: el componente AWS S3 Storage Service permite interactuar con el servicio Amazon S3 (Simple Storage Service) de AWS y manipular datos en buckets S3 directamente a través de las rutas de integración.

  • Ejemplo

    • El flujo se activa por nuevos eventos en un bucket S3 de AWS (aws2-s3://bucket-s3).

    • Los parámetros indican las credenciales utilizadas (contenidas en variables) y la ubicación del bucket.

    • A continuación, el flujo registra un mensaje en el log con el contenido del archivo u objeto procesado del 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)

  • Descripción: el componente AWS SQS permite enviar y recibir mensajes del servicio SQS de Amazon.

  • Ejemplo

    • El flujo recibe mensajes de una cola SQS de AWS. Las credenciales de acceso (accessKey y secretKey) permiten que el flujo se autentique en AWS.

    • Los mensajes recibidos se registran en el log con nivel info, permitiendo que vea los datos que fueron procesados.

Script

Diagrama

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

Cron

  • Descripción: el componente Cron permite activar eventos a intervalos de tiempo específicos.

  • Ejemplo

    • El fragmento siguiente configura un gatillo cron para ser disparado todos los días al mediodía. Después, un mensaje es registrado en el log.

Script

Diagrama

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

Expresión cron

Una expresión cron es una cadena compuesta por 6 o 7 campos separados por espacios en blanco. Los campos pueden contener cualquier valor permitido, junto con varias combinaciones de los caracteres especiales permitidos para ese campo. Los campos son los siguientes:

Nombre del campo Obligatorio Valores permitidos Caracteres especiales permitidos

Segundos

0-59

, - * /

Minutos

0-59

, - * /

Hora

0-23

, - * /

Día del mes

1-31

, - * ? / L W

Mes

1-12 o JAN-DEC

, - * /

Día de la semana

1-7 o SUN-SAT

, - * ? / L #

Año

NO

vacío, 1970-2099

, - * /

Significado de los principales caracteres especiales

Carácter especial Significado

*

Todos los valores del campo.

?

Sin valor específico (usado en los campos "día del mes" y "día de la semana"). Útil cuando necesita especificar algo en uno de los dos campos donde se permite el carácter, pero no en el otro. Por ejemplo, si quiero que mi gatillo se dispare en un día específico del mes (digamos, el día 10), pero no me importa en qué día de la semana ocurra, pondría “10” en el campo del día del mes y “?” en el campo del día de la semana.

-

Rango de valores (todos los valores incluidos en el rango).

,

Separador de lista de valores (solo los valores especificados).

/

Valores incrementales. Por ejemplo, “0/15” en el campo segundos significa “en los segundos 0, 15, 30 y 45”.

Ejemplos

Expresión cron Significado

0 0 12 * * ?

Se dispara a las 12h (mediodía) todos los días.

0 15 10 * * ? 2005

Se dispara a las 10h15 todos los días durante el año 2005.

0 15 10 15 * ?

Se dispara a las 10h15 el día 15 de cada mes.

Para más información y ejemplos, consulte: Cron Trigger Tutorial (solo en inglés).

El soporte para especificar simultáneamente "día de la semana" y "día del mes" no está completo. Actualmente, debe usar el carácter '?' en uno de estos campos.

Fast Healthcare Interoperability Resources (FHIR)

  • Descripción: el componente FHIR permite el intercambio estandarizado de datos de salud entre sistemas, garantizando interoperabilidad y coherencia en la comunicación. Define una estructura flexible basada en recursos (resources), que representan entidades clínicas, administrativas y financieras, permitiendo la comunicación estandarizada entre diferentes plataformas.

  • Ejemplo

    • La integración comienza con una búsqueda en un servidor FHIR que filtra los pacientes por el apellido "Simpson".

    • Después de recuperar los datos del servidor FHIR, la respuesta se envía a un endpoint REST.

    • El dato recuperado es procesado por el EIP marshal, garantizando que la respuesta esté en formato FHIR JSON.

    • La versión de FHIR utilizada es 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
  • Orientaciones para el uso del componente FHIR

    • La respuesta del componente se insertará en el body del Exchange como un objeto Java.

      • El objeto varía según la API y la versión del protocolo utilizada.

      • Para la versión R4, el objeto estará en el paquete org.hl7.fhir.r4.model.

    • Para utilizar el objeto en otros componentes, es necesario convertirlo a JSON usando el EIP marshal.

      • Utilice el Data Format fhirJson.

      • El Data Format JSON tradicional no es compatible con las clases de FHIR.

    • Los parámetros del componente no admiten expressions para obtener un payload del body.

      • Para ello, utilice el parámetro inBody.

    • No es posible usar expressions en cualquier campo.

      • Para parametrizar valores, utilice variables de entorno.

FTP/FTPS

  • Descripción: el componente FTP permite acceder a sistemas de archivos remotos mediante los protocolos FTP y SFTP. Solo funciona en modo pasivo.

FTPS es una versión segura de FTP que añade soporte para SSL/TLS para encriptar la conexión.
  • Ejemplo

    • El flujo se conecta a un servidor FTP y descarga archivos de texto.

    • Los parámetros indican las credenciales usadas para autenticación (username y password) y que el flujo debe filtrar e incluir solo archivos con la extensión .txt.

    • Luego, registra el contenido de esos archivos en un 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

  • Descripción: el componente Google Pub/Sub permite la integración con el servicio Google Cloud Pub/Sub para publicar y consumir mensajes. Es ideal para la comunicación asincrónica entre aplicaciones, facilitando el intercambio de datos en escenarios distribuidos.

  • Ejemplo

    • Se recibe un mensaje del tema my-topic en Google Pub/Sub.

    • Los parámetros incluyen:

      • serviceAccountKey: archivo JSON de la cuenta de servicio utilizada para la autenticación.

      • destinationName: nombre del tema en Google Pub/Sub.

    • El cuerpo del mensaje es transformado utilizando la expresión simple. Se agrega el texto "Mensaje transformado: " y el contenido se convierte a mayúsculas ${body.toUpperCase()}.

    • Se registra un log con el texto "Mensaje enviado al tema Pub/Sub:" seguido del mensaje transformado.

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

  • Descripción: el componente Google Storage permite la integración con el servicio Google Cloud Storage, facilitando el almacenamiento y recuperación de objetos en buckets de Google Cloud. Puede configurarse para descargar archivos de un bucket, permitiendo que estos archivos sean consumidos y procesados en rutas de Camel.

  • Ejemplo

    • El flujo inicia con Google Storage como gatillo.

    • Descarga un archivo.

    • Luego, envía un mensaje al 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

  • Descripción: el componente Kafka se utiliza para la comunicación con el broker de mensajes Apache Kafka.

  • Ejemplo

    • El flujo comienza al recibir mensajes del tema Kafka my-topic, con la configuración de brokers.

    • Luego, el mensaje recibido se registra en el log para monitoreo y depuración.

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

  • Descripción: el componente IMAP es un protocolo utilizado para recibir correos electrónicos, permitiendo el acceso a varias carpetas de correo y la manipulación de mensajes directamente en el servidor.

IMAPS es una versión segura de IMAP que transmite datos encriptados utilizando SSL/TLS.
  • Ejemplo

    • El flujo está configurado para conectarse a una cuenta de correo electrónico usando el protocolo IMAP en el servidor de Gmail (imap.gmail.com) en el puerto 993.

    • Parámetros de la URI:

      • el flujo utiliza las credenciales proporcionadas (username y password) para autenticación;

      • está configurado para no eliminar correos electrónicos (delete=false);

      • está configurado para buscar solo mensajes no leídos (unseen=true);

      • existe un retraso de 60 segundos (delay=60000), lo que significa que verificará nuevos correos electrónicos cada minuto.

    • Cuando se encuentra un nuevo correo electrónico, el contenido completo del correo se registra en un 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

  • Descripción: el componente POP3 se utiliza para recuperar correos electrónicos de servidores POP3, permitiendo que Camel acceda a la bandeja de entrada, lea los mensajes y los procese automáticamente en un flujo de integración.

POP3S es una versión segura de POP3 que transmite datos encriptados utilizando SSL/TLS.
  • Ejemplo

    • El código muestra una conexión con un servidor de correo electrónico usando el protocolo POP3 seguro (POP3S) para acceder a una cuenta de Gmail.

    • Parámetros de la URI:

      • username=yourusername: nombre de usuario;

      • password=yourpassword: contraseña;

      • delete=false: especifica que los mensajes no deben ser eliminados del servidor después de ser leídos;

      • unseen=true: indica que solo deben recuperarse los mensajes que aún no han sido leídos;

      • delay=60000: define un retraso de 60 segundos entre cada intento de recuperación de nuevos mensajes.

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

  • Descripción: el componente SMTP se utiliza para enviar correos electrónicos a servidores SMTP, permitiendo que Camel envíe mensajes con contenido personalizado, archivos adjuntos y destinatarios en un flujo de integración.

SMTPS es una versión segura de SMTP que transmite datos cifrados utilizando SSL/TLS.
  • Ejemplo

    • El flujo utiliza las credenciales proporcionadas para autenticar en el servidor de correos electrónicos de Gmail, permitiendo la recepción de mensajes.

    • Parámetros de la URI:

      • username: "yourusername": el nombre de usuario de la cuenta de Gmail que se está utilizando para la autenticación.

      • password: "yourpassword": la contraseña de la cuenta de Gmail.

      • mail.smtp.auth: "auth": este parámetro indica que se debe usar la autenticación SMTP.

      • mail.smtp.starttls.enable: "starttls": este parámetro habilita STARTTLS, un mecanismo para actualizar una conexión insegura a una conexión segura mediante TLS.

    • Después de la recepción, todos los detalles del correo electrónico se registran en el log, facilitando la monitoreo y depuración.

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

  • Descripción: el componente Paho permite la integración de aplicaciones con el protocolo MQTT, facilitando la comunicación entre dispositivos y sistemas en entornos de Internet de las Cosas (IoT).

  • Ejemplo

    • El flujo comienza suscribiéndose al tema sensor/temperature en un broker MQTT, utilizando una conexión segura a través de SSL en la URL broker.brokername.com:8883.

    • Registra en el log un mensaje con el contenido recibido: Got message ${body}.

    • Si un mensaje con el contenido "Sensor data: 24°C" es publicado en el tema sensor/temperature, el 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

  • Descripción: el componente Paho MQTT5 permite la integración de aplicaciones con el protocolo MQTT (versión 5), ofreciendo características avanzadas de mensajería, como sesiones persistentes y control de flujo.

  • Ejemplo

    • El flujo es idéntico al flujo descrito para el componente Paho, con la diferencia de que este utiliza la versión 5 del 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

  • Descripción: el componente Quartz permite programar y activar eventos basados en expresiones cron. Permite configurar tareas para que se activen en horarios regulares, como cada minuto, hora o día, utilizando la sintaxis cron estándar.

Ver gatillo Cron.
  • Ejemplo

    • Un flujo es activado todos los días al mediodía. Después se registra un mensaje en el log.

Script

Diagrama

- from:
    uri: quartz:/quartz-trigger-name
    parameters:
      cron: 0 0 12 * * ?
    steps:
      - log:
          message: integration triggered
component quartz

REST

  • Descripción: el componente REST permite crear y gestionar endpoints RESTful, facilitando la comunicación entre aplicaciones a través del protocolo HTTP. Permite la definición de rutas que responden a solicitudes HTTP (como GET, POST, PUT y DELETE), procesando datos, invocando servicios y manipulando información.

  • Ejemplo

    • El flujo comienza con una solicitud POST en /demo.

    • No hay parámetros adicionales, lo que indica que se utilizarán las configuraciones predeterminadas del endpoint.

    • Después se registra un mensaje en el log.

Script

Diagrama

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

Scheduler

  • Descripción: el componente Scheduler se utiliza para generar intercambios de mensajes cuando un programador activa un evento.

  • Ejemplo

    • En el fragmento a continuación, la URI muestra un programador llamado mySchedulerName, que se activa cada 60 segundos.

    • Después se registra un mensaje en el log.

Script

Diagrama

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

SFTP

  • Descripción: el componente SFTP proporciona acceso a sistemas de archivos remotos a través de los protocolos FTP y SFTP. Funciona solo en modo pasivo.

  • Ejemplo

    • El flujo lee archivos .txt de un servidor SFTP especificado, utilizando un nombre de usuario y una contraseña para autenticación.

    • Después de la descarga, el contenido de los archivos se envía a un log para su 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

  • Descripción: el componente Slack permite enviar mensajes, notificaciones y alertas a canales o usuarios de Slack directamente desde sus flujos de integración.

  • Ejemplo

    • El flujo escucha mensajes en el canal de Slack especificado.

    • El token de autenticación de Slack está incluido en los parámetros.

    • Cuando se recibe un mensaje, se captura y se registra en el log con el contenido.

Script

Diagrama

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

Timer

  • Descripción: el componente Timer se utiliza para generar intercambios de mensajes cuando un temporizador se activa.

  • Ejemplo

    • En el fragmento a continuación, la URI muestra un temporizador llamado mytimer, que se activa cada 30 segundos (30.000 milisegundos).

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]