Comment peut-on insérer des données depuis une API Graph dans Azure Cosmos DB en automatisant le processus avec Power Automate ?

Insertion de données depuis une API Graph dans Azure Cosmos DB

Azure Cosmos DB, une base de données gérée par Microsoft, est conçue pour offrir une faible latence de lecture et d’écriture à l’échelle mondiale. Grâce à sa mise à l’échelle automatique, Cosmos DB simplifie la gestion des bases de données distribuées en éliminant les tâches complexes telles que la configuration, la réplication et la mise à l’échelle.

Dans un projet récent, j’avais besoin de récupérer quotidiennement des informations depuis des API Graph et de les stocker de manière fiable pour une analyse ultérieure. Afin de gérer efficacement ce flux de données et d’automatiser le processus, j’ai opté pour Azure Cosmos DB comme solution de stockage. Cet article détaille les étapes nécessaires pour insérer des données récupérées depuis une API dans une base de données Azure Cosmos DB, en automatisant l’ensemble du processus.

Étape 1 : Création d’un nouveau flux dans Power Automate

Pour commencer, ouvrez Power Automate et connectez-vous avec vos identifiants Microsoft. Une fois connecté, suivez les étapes ci-dessous pour créer un nouveau flux :

Sur l’écran d’accueil de Power Automate, cliquez sur « Créer » pour démarrer la création d’un nouveau flux.

Vous verrez deux sections s’afficher :

  • « Start from blank » : permet de créer un flux à partir de zéro.
  • « Start from a template » : propose des modèles prédéfinis pour différents scénarios.
  • Dans la section « Start from blank« , choisissez « Scheduled cloud flow » pour créer un flux planifié selon vos besoins.
  • Une fois cette option sélectionnée, vous serez invité à nommer et configurer la planification de votre flux. Indiquez la fréquence à laquelle vous souhaitez que le flux s’exécute, par exemple, quotidiennement, hebdomadairement, ou à un intervalle spécifique selon vos besoins.
Design sans titre - 2024-09-26T110336.447

Étape 2 : Action pour récupérer des données depuis une API

Maintenant que vous avez créé et configuré votre flux planifié, il est temps d’ajouter une action pour récupérer des données depuis une API.

  • Cliquez sur « Nouvelle étape » pour ajouter une action à votre flux.
  • Dans la barre de recherche qui apparaîtra, tapez « HTTP » pour rechercher l’action qui permet d’envoyer des requêtes HTTP. Parmi les résultats, choisissez l’action « HTTP« .

 

Étape 3 : Configuration de l’action HTTP

Maintenant que vous avez ajouté l’action HTTP à votre flux, il est temps de configurer correctement la requête pour interroger l’API.

  1. Dans le champ « URI« , entrez l’URL de l’API que vous souhaitez interroger. Cette URL est l’endroit où Power Automate enverra la requête pour récupérer les données. Par exemple, si vous interrogez une API Graph, l’URL pourrait être https://graph.microsoft.com/v1.0/users.

  2. Dans le champ « Method« , sélectionnez la méthode HTTP appropriée pour la requête. Les méthodes les plus courantes sont :

    • GET : pour récupérer des données depuis l’API.
    • POST : pour envoyer des données à l’API.
    • PUT ou PATCH : pour mettre à jour des données via l’API.
    • DELETE : pour supprimer des données via l’API.
  3. Pour une récupération de données, vous utiliserez généralement la méthode GET.

  4. Si votre API nécessite des en-têtes spécifiques, comme un jeton d’autorisation, ajoutez-les ici. Cliquez sur « Enter key » pour saisir le nom de l’en-tête (par exemple, Authorization), puis sur « Enter value » pour entrer la valeur correspondante (par exemple, Bearer <votre_token>).

5. Queries (Requêtes) : si l’API prend en charge des paramètres de requête (query parameters), vous pouvez les ajouter dans cette section. Par exemple, pour filtrer les résultats ou spécifier une plage de dates.

6. Body (Corps de la requête) : ce champ est utilisé principalement avec des méthodes comme POST ou PUT lorsque vous devez envoyer des données avec votre requête. Pour une requête GET, vous pouvez généralement laisser ce champ vide.

7. Cookie : si votre API nécessite l’envoi d’un cookie particulier avec la requête, vous pouvez l’entrer ici, mais cela est rarement nécessaire.

Configurez ces champs en fonction des spécifications de l’API que vous utilisez, puis sauvegardez et testez.

Étape 4 : Utilisation de l’Action ‘Parse JSON’

Après avoir récupéré les données sous forme de JSON via l’action HTTP, il est essentiel de les structurer pour les rendre facilement accessibles lors des étapes suivantes du flux, notamment pour leur insertion dans Azure Cosmos DB.

Pour cela, vous utiliserez l’action « Parse JSON« .

  • Ajouter l’action ‘Parse JSON’ : après l’action HTTP, cliquez sur « Nouvelle étape » et recherchez « Parse JSON« .
  • Entrer le contenu à analyser : dans le champ « Content« , insérez la sortie du corps (body) de la réponse de l’action HTTP.

 

Vous pouvez utiliser le contenu dynamique pour sélectionner cette valeur.

Design sans titre - 2024-09-26T102826.360
Design sans titre - 2024-09-26T103322.366

Récupérer le JSON de l’output

Avant de configurer le schéma JSON dans l’action « Parse JSON« , vous devez exécuter votre flux pour obtenir la réponse JSON de l’API. Voici comment procéder :

  1. Exécutez le flux avec l’action HTTP configurée.
  2. Accédez à l’historique d’exécution de votre flux Power Automate.
  3. Localisez la section « Outputs » de l’action HTTP dans l’historique. Cette section contient le JSON complet retourné par l’API.
  4. Ouvrez cette section et copiez le contenu du JSON.

Configurer l’action ‘Parse JSON’

  1. Retournez dans l’action « Parse JSON« .
  2. Cliquez sur « Use sample payload to generate schema« .
  3. Collez le JSON que vous avez copié depuis l’output de l’action HTTP dans la fenêtre qui s’ouvre.
  4. Cliquez sur « Done« . Power Automate générera automatiquement le schéma basé sur ce JSON.

 

Vérifier le schéma généré

  • Le schéma JSON généré apparaîtra dans le champ « Schema« . Ce schéma définit la structure des données que Power Automate attend dans ce JSON.
  • Vérifiez que le schéma est correct et correspond bien à la structure des données récupérées.
Design sans titre - 2024-09-26T103456.350
Étape 5 : Insertion ou Mise à Jour des Données dans Azure Cosmos DB

Maintenant que vous avez structuré vos données JSON, vous pouvez les insérer ou les mettre à jour dans Azure Cosmos DB en utilisant l’action « Create or update document (V3)« . Voici les étapes à suivre :

1.Ajouter l’Action ‘Create or Update Document (V3)’ :

  • Rechercher l’action Cosmos DB : dans la barre de recherche, tapez « Cosmos DB« .
  • Sélectionner l’action : choisissez « Create or update document (V3) » parmi les options proposées.

 

2.Configurer la Connexion à Azure Cosmos DB

Si c’est la première fois que vous utilisez Cosmos DB avec Power Automate, vous devrez configurer une connexion :

  • Authentification : vous serez invité à vous connecter à votre compte Azure et à fournir l’URI de votre base de données Cosmos DB ainsi que la clé primaire.
  • Sélectionner la base de données et le conteneur : une fois connecté, sélectionnez la base de données et le conteneur (collection) dans lesquels vous souhaitez insérer ou mettre à jour les données.
3.Configurer le Champ ‘Body’

 

Dans Azure Cosmos DB, toutes les données sont stockées sous forme d’objets JSON. Par conséquent, vous devez créer un objet JSON dans le champ « Body » qui contient les données que vous souhaitez insérer ou mettre à jour.

Voici comment configurer les champs obligatoires :

  • Azure Cosmos DB Account Name : indiquez le nom de votre compte Cosmos DB (sans le suffixe .documents.azure.com).
  • Database ID : entrez le nom de la base de données Cosmos DB dans laquelle vous souhaitez insérer les données.
  • Collection ID : indiquez le nom de la collection (conteneur) dans laquelle les données seront stockées.
  • Body : c’est ici que vous allez créer l’objet JSON à insérer dans Cosmos DB. Vous devez structurer ce JSON en fonction des champs que vous souhaitez stocker. Voici un exemple :
    • Id-unique : un identifiant unique pour chaque document. Vous pouvez le générer dynamiquement avec utcNow() pour inclure la date et l’heure actuelles.
    • Clé-partition : la clé de partition, nécessaire pour organiser les données dans Cosmos DB.
    • Nom : vous pouvez extraire cette valeur du JSON analysé avec l’action « Parse JSON » en utilisant le contenu dynamique.
    • Date : la date et l’heure actuelles, également générées avec utcNow().
    • Value : c’est ici que vous insérez le contenu complet de la réponse de votre API, tel qu’il a été structuré dans l’action « Parse JSON« .

(J’ai structuré le JSON de cette manière pour faciliter l’analyse des données ultérieurement dans Power BI.)

Important : vous pouvez structurer, ajouter ou enlever des champs dans ce JSON en fonction de vos besoins spécifiques. Cette flexibilité vous permet d’adapter la structure des données pour qu’elle corresponde exactement aux exigences de votre application ou de vos analyses futures.

Options Avancées

Lors de l’utilisation de l’action « Créer ou mettre à jour un document » dans Cosmos DB, plusieurs options avancées sont disponibles pour affiner et personnaliser l’insertion des données, comme la gestion des niveaux de cohérence, des déclencheurs avant et après l’insertion, ou encore l’activation du mode « Upsert » pour créer ou mettre à jour automatiquement les documents.

Étape Finale : sauvegarde et test du flux

Une fois que vous avez configuré toutes les étapes de votre flux, suivez ces dernières instructions pour finaliser et tester votre configuration :

  • Sauvegardez votre flux : cliquez sur le bouton « Enregistrer » en haut à droite de l’écran pour sauvegarder toutes les modifications apportées à votre flux.

  • Tester le flux : une fois sauvegardé, cliquez sur « Tester » pour exécuter votre flux manuellement. Vous pouvez également attendre la prochaine exécution planifiée si vous avez configuré une exécution automatique.

  • Vérifier les données dans Cosmos DB : après l’exécution du flux, accédez à votre Azure Cosmos DB via le portail Azure. Ouvrez la collection dans laquelle vous avez configuré l’insertion des données et vérifiez que les nouveaux documents ont été correctement insérés.

Si tout est configuré correctement, vous devriez voir les données provenant de votre API insérées dans Cosmos DB, prêtes à être utilisées ou analysées.

Jamila CHERKAOUI , Consultante Cloud Microsoft Data chez Kaizzen.

Prêt à parler
avec un expert ?