¿Cómo crear un conjunto de usuarios desde un CSV?
Introducción
El componente Flow Engine de Plataforma ofrece un gran número de conectores para automatizar la gestión de usuarios de Plataforma. Concretamente, incluye componentes especialmente interesantes para la generación de nuevos usuarios en plataforma.
En este post, se muestra cómo usar estos componentes para:
Leer archivos CSV desde el File Manager de Plataforma.
El tratamiento de esta información.
La inserción de estos para la generación de nuevos usuarios en plataforma.
Paso 1: Subir fichero CSV en 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.
Paso 2: Obtención de los datos en Flow Engine
Lo primero será tener un usuario en la instancia de Plataforma que desees usar.
Para el ejemplo, usarás el entorno CloudLab de Plataforma (entorno gratuito con fines de experimentación). Así que ve a https://lab.onesaitplatform.com/ y, si no tienes un usuario, créalo con el botón SIGN UP. Ten en cuenta que debes crear un usuario tipo DEVELOPER:
Con el usuario creado (recibirás un mail para validar la creación), ya puedes logarte en el Panel de Control de la Plataforma:
Una vez dentro, ve a la opción de menú DEVELOPMENT > My Flows:
Si es la primera vez que entras, verás que no tenemos creado un dominio del FlowEngine, así que pulsa el botón + para crearlo:
Dale un nombre y pulsa Create:
Ahora ya puedes ver tu dominio, que por defecto está parado, así que lo primero, arráncalo:
Una vez arrancado, puedes acceder a él con el botón de View It:
Finalmente, accede a la Paleta del FlowEngine. Empieza por seleccionar que no quieres crear un proyecto:
Puedes maximizar el área de trabajo con el botón de la esquina derecha:
Para comenzar nuestro flujo necesitaremos el componente Injector desde el cual podremos arrancar nuestro flujo de acciones. Para ello busca el componente en la barra de búsqueda y arrástralo al lienzo de trabajo.
Ahora busca le componente de invoker con el buscador y arrastra el de onesaitplatform-management-Rest-API-invoker al lienzo:
Pincha dos veces sobre él para que aparezca la ventana de configuración.
En esta ventana debes seleccionar la REST API disponible, en este caso queremos acceder a Object Storage que corresponde con el sistema de almacenamiento de archivos de Plataforma donde se encuentra nuestro CSV. Seleccionaremos el la operación GET - getBinary_2 y asignaremos un timeout de 15000 ms. Por último debemos añadir el path de nuestro CSV, en este caso administratorbucket/userList.csv y X-OP-APIKey que al que podemos acceder mediante los 3 puntos que puedes observar en la esquina superior derecha, accediendo a la opción de APIs.
Esto desplegará una ventana emergente donde podemos acceder a nuestro X-OP-APIKey, el cual sirve para autentificarte.
Tenga en cuenta que el los operadores de entrada deben ser de tipo estático en este punto, para modificar la tipología del operador, haga click sobre el desplegable que se ofrece en cada uno de ellos y seleccione String.
Por tanto la ventana de configuraciones del modulo onesaitplatform-management-Rest-API-invoker quedaría de la siguiente manera:
Por último conecta el componente Injector al componente onesaitplatform-management-Rest-API-invoker simplemente haciendo click en la salida del componente y arrastrando hasta la entrada del siguiente componente.
Paso 3: Procesamiento de los datos CSV
Se puede apreciar que el componente onesaitplatform-management-Rest-API-invoker cuenta con 6 salidas, una por cada respuesta HTTP que devuelve la invocación de la API. En este paso vamos a generar un componente debug el cual sirve para mostrar un mensaje por la consola de debug del propio FlowEngine.
Para ello haz una búsqueda en la barra de búsqueda de este componente y arrástralo al marco de trabajo.
Haciendo doble click sobre este elemento accederás a su ventana de configuración donde puede modificar el mensaje de salida en la consola de debug. Se recomienda mantener la siguiente configuración.
Ahora conecta las 5 ultimas salidas del componente invoker con este componente debug. Así podremos asegurarnos de recibir un mensaje de error en caso de que la invocación de la API no sea coherente.
La primera salida del 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 acceda a la ventana de configuración del componente CSV y seleccione 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.
Paso 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, busque de nuevo el componente en la barra de búsqueda y enlácelo a la salida del componente CSV. También puede generar un nuevo componente debug y enlazarlo la salida del componente CSV para asegurarse de que hasta este paso todo ha funcionado correctamente.
De nuevo, haga doble click sobre el nuevo componente invoker y añada la siguiente configuración, utilizando su propio X-OP-APIKey. Tenga en cuenta que el operador de entrada body ahora es del tipo msg.
Ahora añadiremos dos componentes debug sobre las salidas del componente de la siguiente manera.
Paso 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 generaría una sobrecarga del sistema. Para evitar esto deberá incluir un componente delay el cual permite controlar el limita de mensajes enviados a la API por segundo. De esta manera, busque el componente y añádalo en la conexión entre la salida del componente CSV y el invoker.
Haga doble click para acceder a la ventana de configuración del componente donde podrá configurar el numero de mensajes por periodo que desea que sean enviados a la API.
Paso 6: Ejecución del proceso automatizado
Por ultimo pulse sobre el botón deploy en la esquina superior derecha para persistir los cambios.
Para ejecutar el proceso pulse sobre el botón del componente Injector.
Podrá observar los mensajes de respuesta y 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 podrá ver los mensajes de respuesta del tipo 201. Para probar la correcta ejecución puede probar a acceder a la plataforma a través de uno de los usuarios gestionados.