Logic App est un outil proposé par Microsoft sur Azure, permettant via un système de workflow graphique la mise en place de logiques techniques diverses.
Event Hub est une autre ressource Azure permettant l’ingestion de données en temps réel, auxquelles d'autres services peuvent s'approvisionner, comme Logic App.
Le fonctionnement des deux éléments va être illustré dans le scénario suivant :
Un premier job Logic App écoute sur une table d'une base de données dans Azure, et lors de l’insertion d’une nouvelle ligne dans celle-ci, le job se déclenche. A partir de là, la nouvelle donnée insérée sera récupérée et insérée dans Event Hub. Ensuite, un autre job Logic App écoute pour des nouvelles données dans Event Hub, et déclenche alors de nouvelles actions.
Schéma de l'architecture à mettre en place
Mise en place du premier Logic App : écouter une base de données
Pré-étape
Tout d’abord créer une ressource “Base de données SQL”, puis une table que nous allons utiliser afin de pouvoir y écouter les insertions. Par exemple une table “poc_logicapp_input” avec un champs “id” en auto-increment et un champs “value” de type texte.
Étape 1 :
Créer une ressource “Event Hubs” sur Azure en prenant le soin de remplir les informations à votre convenance.
Étape 2 :
Une fois la ressource créée, rendez-vous dans l’onglet “Event Hubs”, sous “Entités” et créer une nouvelle entité.
Étape 3 :
Créer une ressource “Logic App” sur Azure en prenant le soin de remplir les informations à votre convenance.
Etape 4 :
Une fois la ressource créée, rendez-vous dans l’onglet “Concepteur d’application logique” pour mettre en place le job.
Étape 5 :
Via le bouton “nouvelle étape”, créer les composants de la manière suivante :
Le composant “Lorsqu'un élément est créé (V2)”, comme son nom l’indique, va permettre d’écouter les nouvelles insertions, à une fréquence donnée, dans une table. Pour cela, il suffit de rentrer les informations de connexion à la base de données.
Le composant “Send event”, une fois configuré pour être connecté au Event Hub, permettra alors d’envoyer les données récupérées précédemment dans le Event Hub.
Pour lancer le job créé, il suffit de cliquer sur “Enregistrer” puis sur “Déclencheur d'exécution".
Dès lors, à chaque fois qu’une ligne sera insérée en base de données, un nouvel élément sera créé dans Event Hub.
Mise en place du second Logic App : écouter Event Hub
Étape 1 :
Comme précédemment, créer un nouveau Logic App, puis aller dans “Concepteur d’application logique”.
Étape 2 :
Via le bouton “nouvelle étape” créer les composants de la manière suivante :
Ainsi différents composants sont présents :
- “When events are available in Event Hub” : Permet d’écouter lorsqu'un élément est créé dans Event Hub.
- “Analyser JSON” : Ce composant permet de convertir les données reçues de Event Hub en Json typé et exploitable par les composants suivants. L’astuce ici consiste à récupérer un exemple de données et à le convertir en schéma via le bouton “Utiliser l'exemple de charge utile pour générer le schéma” du composant.
- “Obtenir les lignes (v2)” : Afin de pouvoir fusionner deux jeux de données entre eux, à titre d’exemple, il est possible d’en récupérer directement depuis une base de données. Ces données seront utilisées plus tard.
- “Transformer de JSON en JSON” : Un compte d’intégration est une ressource Azure que nous pouvons utiliser pour faciliter la transformation de données. Ici on peut utiliser l’onglet “Mappages” de cette ressource qui nous permet d’héberger des fichier JSON, tel que celui-ci :
- La syntaxe Liquid, permet d’effectuer toutes sortes d'opérations afin de générer un document JSON, CSV ou encore un simple fichier. Sur l'exemple ci-dessus, on vient agréger la valeur “Value” et “Id” en ajoutant un trait d’union entre les deux éléments. Ainsi nous construisons un fichier JSON avec une clé “mydata” contenant la valeur “Value-Id”. Une des forces d’un tel système externalisé à Logic App est sa réutilisabilité à travers plusieurs services Azure.
- “Message” : Permet de générer un document JSON à la volée
- “HTTP 2” : Composant qui permet d’effectuer des requêtes HTTP. Ici celui-ci est juste là pour l’exemple. Il pourrait s’agir d’un autre système tierce qui serait capable de recevoir des données sous forme d’API Rest, par exemple.
- “Insérer la ligne (v2)” : Les données JSON sont insérées dans la base de données.
Comme pour le job précédent, pour le lancer, il suffit de cliquer sur “Enregistrer” puis sur “Déclencheur d'exécution".
Ainsi, dès qu’une nouvelle ligne sera détectée dans le Event Hub, celle-ci sera récupérée, transformée puis insérée en base de données.
Conclusion :
Nous venons donc de réaliser tout un circuit permettant de montrer le fonctionnement d’une boucle Logic App : écoute de nouvelles données, chargement et transformation de celle-ci.
Bien sûr les possibilités de Logic App sont très grandes et s'étendent bien au-delà du simple cas d’usage réalisé ici, comme la connexion à différents types de base de données, d’autres outils Microsoft (Outlook, Key vault, etc.), des outils tierces (SAP, IBM 3270, etc.) ou encore avec des connecteurs personnalisés.
Logic App est une véritable opportunité pour les entreprises souhaitant gérer des flux de données divers et interconnectés au sens de leurs SI.
Chez Next Decision, forts de notre expertise dans le l’univers de la Data, nous saurons vous conseiller des solutions sur mesure pour répondre à vos besoins, qu’il s’agisse de Logic App ou autre.
Retrouvez tous nos tutos dans notre Wiki. Nos consultants experts de Next Decision sont également à votre écoute pour vous accompagner dans vos projets ! Contactez-nous !