Tutoriales

Cómo crear un conjunto de usuarios desde un CSV en Onesait Platform

El componente Flow Engine de Onesait Platform, la plataforma de Minsait, ofrece un gran número de conectores para automatizar la gestión de usuarios de la Plataforma. Concretamente, incluye componentes especialmente interesantes para la generación de nuevos usuarios en la Plataforma.

En este tutorial vamos a ver cómo usar estos componentes para:

  • Leer archivos CSV desde el File Manager de la Plataforma.
  • El tratamiento de esta información.
  • La inserción de estos para la generación de nuevos usuarios en la Plataforma.

Como entorno de trabajo vamos a utilizar CloudLab, nuestro espacio de experimentación en la nube. Haremos uso de un usuario de tipo desarrollador.

Pasos

1. Subir el fichero CSV a File Repository

En este ejemplo se utiliza la herramienta File Repository para el almacenamiento y acceso del fichero CSV que contiene los datos de los nuevos usuarios.

Para acceder al repositorio, navegaremos al menú de Dev Tools > My Files.

De entre las distintas opciones de almacenamiento, escogeremos la de MinIO.

Una vez accedamos al listado de archivos subidos, pulsaremos en el botón de «+» para subir nuestro archivo.

Se nos abrirá el gestor de archivos, en donde buscaremos en nuestro local el archivo CSV a subir.

Con esto ya tendríamos subido nuestro archivo CSV de usuarios.

2. Obtención de los datos en Flow Engine

Navegaremos al menú de Development > My Flows.

Si es la primera vez que accedemos, veremos que no tenemos creado ningún dominio de Flow Engine, así que pulsaremos el botón «+» para crearlo:

Se nos abrirá una gestor de creación en donde tendremos que indicar un nombre, y seguidamente pulsaremos en el botón de «Create».

Con ello volveremos al listado de DataFlows, en donde veremos el que acabamos de crear. Eso si, estará apagado, por lo que tendremos que iniciarlo pulsando en el icono de «play»:

Tras arrancarlo, podremos acceder a él pulsando sobre el botón del ojo, que ya estará habilitado:

Con ello accederemos a la paleta del Flow Engine. Pero primero, tendremos que indicar que no queremos crear ningún proyecto en el modal que nos aparecerá:

Para facilitar la visualización del entorno de Flow Engine, podremos pulsar en el icono de las flechas:

Para comenzar con el flujo, necesitaremos el componente «Injector» desde el cual vamos a poder arrancar nuestro flujo de acciones. Para ello, buscaremos el componente en la barra de búsqueda y lo arrastraremos al lienzo de trabajo.

Seguidamente, buscaremos el componente «Invoker» con el buscador, y arrastraremos el de «onesaitplatform-management-Rest-API-invoker» al lienzo:

Para configurar el componente, pulsaremos dos veces sobre el mismo. Esto nos abrirá la siguiente pantalla:

En esta ventana tendremos que seleccionar la REST API disponible. En este caso, queremos acceder a «Object Storage», que corresponde con el sistema de almacenamiento de archivos de la Plataforma donde se encuentra nuestro CSV.

Seleccionaremos el la operación «GET – getBinary_2» y asignaremos un timeout de 15000 ms. Por último, tendremos que añadir el path de nuestro CSV. En este caso administratorbucket/userList.csv y «X-OP-APIKey» que al que podemos acceder mediante los tres puntos que puedes observar en la esquina superior derecha, accediendo a la opción de APIs.

Esto desplegará una ventana emergente donde vamos a poder acceder a nuestro «X-OP-APIKey», el cual sirve para que nos autentifiquemos.

Un punto a tener en cuenta es que los operadores de entrada deben ser de tipo estático en este punto. Para modificar la tipología del operador, tendremos que hacer clic sobre el desplegable que se ofrece en cada uno de ellos, y seleccionar «String».

Al final, la ventana de configuración del modulo «onesaitplatform-management-Rest-API-invoker» quedaría de la siguiente manera:

Por último, conectaremos el componente «Injector» al componente «onesaitplatform-management-Rest-API-invoker» simplemente haciendo clic en la salida del componente, y arrastrando hasta la entrada del siguiente componente.

3. Procesamiento del CSV

Podemos ver que el componente «onesaitplatform-management-Rest-API-invoker» cuenta con seis salidas disponibles; una por cada respuesta HTTP que devuelve la invocación de la API.

En este paso vamos a generar un componente de tipo «Debug» el cual sirve para mostrar un mensaje por la consola de debug del propio Flow Engine.

Para ello, haremos una búsqueda en la barra de búsqueda de este componente y lo arrastraremos al marco de trabajo.

Haciendo doble clic sobre este elemento, accederemos a su ventana de configuración donde vamos a poder modificar el mensaje de salida en la consola de debug. Aquí recomendamos mantener la siguiente configuración:

Ahora, conectaremos las cinco últimas salidas del componente «Invoker» con este componente «Debug». Así vamos a poder asegurarnos de recibir un mensaje de error en caso de que la invocación de la API no sea coherente.

La primera salida del componente «Invoker» hace referencia a la respuesta HTTP 200, la cual significa que la invocación de la API ha tenido éxito.

Esta salida la vamos a conectar a un componente CSV, el cual transformará la información del CSV obtenida por el «Invoker» en un JSON, gestionando así el tratamiento de nuestros datos.

Es importante que accedamos a la ventana de configuración del componente CSV y seleccionemos el separador utilizado en el CSV. En este caso el separador utilizado es el punto y coma. El resto de configuraciones pueden apreciarse en la siguiente imagen:

4. Inserción de los nuevos usuarios

Para la inserción de nuevos usuarios se hará uso, de nuevo, del componente «onesaitplatform-management-Rest-API-invoker», solo que esta vez se apuntará a una API Rest diferente.

Para ello, vamos a buscar de nuevo el componente en la barra de búsqueda y lo enlazaremos a la salida del componente CSV. También puede generar un nuevo componente «Debug» y enlazarlo la salida del componente CSV para asegurarnos de que hasta este paso todo ha funcionado correctamente.

De nuevo, tendremos que hacer doble clic sobre el nuevo componente «Invoker» y añadir la siguiente configuración, utilizando nuestro propio X-OP-APIKey. Aquí debemos tener en cuenta que el operador de entrada body ahora es del tipo «msg».

Ahora añadiremos dos componentes de tipo «Debug» sobre las salidas del componente de la siguiente manera.

5. Control de sobrecarga

Llegados a este paso, el flujo de inserción de usuarios por medio de CSV estaría completo. Sin embargo, si el volumen de usuarios a insertar es demasiado alta, se podría generar una sobrecarga del sistema.

Para evitar esto, tendremos que incluir un componente «Delay», el cual permite controlar el límite de mensajes enviados a la API por segundo. Buscaremos el componente y los añadiremos en la conexión entre la salida del componente CSV y el «Invoker».

Haremos doble clic para acceder a la ventana de configuración del componente, en donde vamos a poder configurar el número de mensajes por periodo que desea que sean enviados a la API.

6. Ejecución del proceso automatizado

Por ultimo, pulsaremos sobre el botón «Deploy» en la esquina superior derecha para salvar los cambios realizados.

Para ejecutar el proceso, pulsaremos sobre el botón del componente «Injector».

Podremos observar los mensajes de respuesta y de «Debug» en la ventana de debug en la parte derecha de la pantalla, accesible a través del siguiente icono.

Si todo el proceso ha sido exitoso, veremos los mensajes de respuesta del tipo 201. Para probar la correcta ejecución del flujo, podemos probar a acceder a la Plataforma a través de uno de los usuarios gestionados.


Imagen de cabecera: modificada de Vidar Nordli-Mathisen en Unsplash

✍🏻 Author(s)

Deja una respuesta