UbiFunctions, el módulo FaaS (Functions as a Service) de Ubidots permite a los usuarios crear sus propios endpoints HTTP API para realizar acciones o agregar funcionalidades que podrían quedar fuera de las características integradas de Ubidots y necesitan ser adaptadas a cada aplicación de usuario.
Como endpoints personalizados creados por el usuario, UbiFunctions se puede llamar a través de un webhook HTTP para ejecutar cualquier lógica dada, pero con la acción nativa de UbiFunctions en el módulo de eventos, hacerlo de manera orientada a los datos hace que este proceso sea aún más fácil.
En este artículo aprenderás cómo disparar una UbiFunction usando el motor de eventos de Ubidots.
Requisitos
Cuenta de Ubidots (Industrial y superiores).
Al menos una UbiFunction.
NOTA: Si aún no tienes una, sigue este artículo primero
1. Crear un nuevo evento
Para comenzar, dirígete a la pestaña “data” →"Eventos" y pasa el cursor sobre el botón “+”, ubicado en la esquina superior derecha de la pantalla, y crea un evento condicional, evento global o evento programado dependiendo de tus necesidades.
A continuación, configura la lógica del evento usando disparadores con una lógica AND/OR. Para obtener detalles adicionales sobre cómo configurar estos disparadores, dirígete a sus guías correspondientes: basado en valores, inactividad, geocerca.
2. Configurar la acción de UbiFunction
Con la lógica de "disparador" configurada, ahora es momento de configurar la acción de UbiFunction.
1. Haz clic en el botón “+ añadir acción” para comenzar el proceso. De las opciones disponibles, elige “disparar función”.
2. Selecciona el método para disparar la UbiFunction: GET o POST. La UbiFunction debe tener el mismo método configurado.
3. Busca y selecciona la función a disparar en el desplegable “seleccionar función”.
4. Añade los encabezados necesarios (para solicitudes POST, se requiere el encabezado predeterminado “Content-Type: application/json”). Puedes añadir múltiples encabezados haciendo clic en el botón “+ añadir encabezado”.
5. Personaliza los mensajes de “disparador activo” y “de vuelta a la normalidad” (opcional).
NOTA: Estos campos siempre esperan un objeto JSON. Cuando el método HTTP es GET, el JSON se convierte automáticamente en parámetros de consulta y se añade a la URL de la UbiFunction.
El siguiente es un mensaje válido que sigue el formato JSON compatible con Ubidots. Consulta nuestra documentación de la API para obtener más información.
{“value”:11.5, “timestamp“:1613665401000, ”context“:{”status“:”active“}}
Usando el icono de etiqueta en las esquinas superiores derechas de los campos “asunto” y “mensaje” puedes añadir fácilmente información como el ID del dispositivo, marca de tiempo, nombre de la variable, etc.
Nota: Por defecto, los datos de entrada que involucran marcas de tiempo se envían en formato legible para humanos (YYY-MM-DD HH:mm:ss TZ). Si prefieres adjuntar la marca de tiempo en formato UNIX epoch en milisegundos, haz doble clic en la entrada de datos y elimina el texto desde el símbolo de tubería ("|") hasta el final, como se muestra a continuación.
6. Opcionalmente, habilita la “acción repetitiva” si deseas disparar la UbiFunction múltiples veces mientras el evento está activado. Puedes elegir con qué frecuencia y hasta cuántas veces se repetirá la acción. Hay un límite de 50 repeticiones de acción.
7. Haz clic en “guardar” una vez que termines de configurar la acción y en “siguiente”, a menos que desees configurar múltiples acciones.
8. Después de completar la configuración de la acción procederás al paso final, la pestaña “configuración”. Allí, nombrarás el evento y le darás una descripción (opcional).
9. Otro paso opcional es usar una etiqueta en el evento. Esta es una gran herramienta para controlar lo que tus usuarios finales ven en tu aplicación. En este caso, por ejemplo, podrías decidir que tu usuario final vea un evento, pero no otro, usando etiquetas. Aprende más sobre las etiquetas aquí.
10. Finalmente (a menos que el evento que creaste sea un evento programado), determina la ventana de actividad en la que deben ejecutarse los eventos. Un evento puede tener múltiples ventanas activas haciendo clic en el botón “+ añadir ventana” y configurándolas correspondientemente. Después de terminar esto, haz clic en “guardar” y tu evento se desplegará.