Dans le précédent article de blog, j'ai expliqué les capacités de Microsoft Fabric, mettant en lumière les diverses options de capacité et comment elles influencent les projets de données. Nous avons examiné les unités de capacité (CU), les nuances de prix et les méthodes pratiques de contrôle des coûts, notamment la mise à l'échelle manuelle et la suspension de la capacité Fabric. Nous passons désormais à l'étape suivante de notre parcours Microsoft Fabric en explorant la possibilité d'automatiser le processus de pause et de reprise. Dans cet article de blog, nous dévoilerons les secrets d'une gestion transparente de votre capacité Fabric avec une automatisation qui nous aide à économiser du temps et des ressources tout en optimisant l'utilisation des charges de travail de données et d'analyse.
D'emblée, c'est un blog assez long, j'ai donc ajouté une section bonus à la fin pour ceux qui lisent du début à la fin. Sur ce, plongeons-nous !
Comme nous l'avons appris dans le précédent article de blog, une façon de gérer nos coûts de capacité Fabric consiste à suspendre la capacité lorsqu'elle n'est pas utilisée et à la reprendre lorsque cela est nécessaire. Bien que cela puisse aider à la gestion des coûts, puisqu’il s’agit d’un processus manuel, il est sujet aux erreurs humaines, ce qui le rend peu pratique à long terme.
Une solution plus pratique consiste à automatiser un processus quotidien pour suspendre et reprendre automatiquement notre capacité Fabric. Cela peut être fait en exécutant les API de gestion Azure. En fonction de notre expertise, il existe plusieurs façons d'atteindre l'objectif, comme exécuter des API sur l'exécution des API via PowerShell (planifier les exécutions séparément), exécuter les API via CloudShell, créer un flux dans Power Automate ou créer le flux de travail dans Applications logiques Azure. Je préfère cette dernière solution, c'est donc la méthode expliquée dans cet article de blog.
Automatisation de la capacité de pause et de reprise de Fabric avec Azure Logic Apps
Voici le scénario : nous allons créer un workflow Azure Logic Apps qui effectue automatiquement les opérations suivantes :
- Vérifiez l'heure de la journée
- Si c'est entre 8h et 16h :
- Vérifier l'état de la capacité Fabric
- Si la capacité est en pausepuis reprenez-le, sinon ne faites rien
- Si c'est après 16h et avant 8h :
- Vérifier l'état de la capacité Fabric
- Si la capacité est a reprispuis mettez-le en pause, sinon ne faites rien
Suivez ces étapes pour implémenter le scénario dans Azure Logic Apps :
- Se connecter à Portail Azure et recherchez « Application logique«
- Clique le Application logique service
Cela nous guide vers le Application logique service. Si vous disposez actuellement de workflows Logic Apps, ils apparaîtront ici.
- Clique le Ajouter bouton
- Sur le Les bases onglet, sélectionnez l'Azure souhaité Abonnement
- Sélectionnez un Groupe de ressources. Si vous n'avez aucun groupe de ressources, cliquez sur Créer un nouveau en créer un
- Saisissez un nom dans la zone de texte **Nom de l'application logique**
- Sélectionnez le souhaité Région depuis la liste déroulante
- Sélectionner Consommation sur le Type de forfait
- Garder le Redondance des zones Désactivé
- Si vous voulez/devez ajouter Mots clésclique le Suivant : Balises sinon cliquez sur le bouton Aperçu + créer bouton
- Clique le Créer bouton
Cela créera un nouveau flux de travail Logic App. Une fois le service créé, un nouveau Aller aux ressources bouton.
- Clique le Aller aux ressources bouton
- Clique le Concepteur d'applications logiques du Outils de développement dans le volet de gauche ou cliquez sur le bouton Modifier bouton pour ouvrir le Concepteur d'applications logiques
- Clique le Récurrence du Commencez par un déclencheur commun section. Cela ouvre le Concepteur d'applications logiques et ajoute le Récurrence déclenchement
- Changer la Intervalle à 1
- Changer la Fréquence à Heure
Jusqu'à présent, nous avons défini un déclencheur pour exécuter le workflow toutes les heures. L'étape suivante consiste à obtenir l'heure actuelle.
- Clique le Nouvelle étape bouton
- Recherchez et sélectionnez le Heure actuelle action
Le Heure actuelle l'action obtient l'heure actuelle en UTC.
Si vous vivez dans un fuseau horaire différent, vous devez convertir la sortie UTC vers votre fuseau horaire.
- Clique le Nouvelle étape bouton, recherchez et sélectionnez Convertir le fuseau horaire action
- Clique le Temps de base zone de texte puis sélectionnez le Heure actuelle du Contenu dynamique
- Sélectionner (UTC) Temps universel coordonné du Fuseau horaire source dérouler
- Sélectionnez le Fuseau horaire de destination depuis la liste déroulante
- Tapez HH : mm dans le Formater la chaîne zone de texte et cliquez sur Utilisez 'HH:mm' comme valeur personnalisée
Jusqu'à présent, nous avons obtenu l'heure actuelle et l'avons convertie dans notre fuseau horaire local. Ensuite, nous devons obtenir l’état de la capacité Fabric. Cela peut être fait via le Gestionnaire de ressources Azure opération en utilisant son Lire une ressource action.
- Clique le Nouvelle étape bouton, recherchez et sélectionnez Lire une ressource action (qui est une Gestionnaire de ressources Azure action)
- Transmettez vos identifiants sur le Gestionnaire de ressources Azure opération, puis sélectionnez le Abonnement de votre capacité Fabric dans la liste déroulante
- Sélectionnez le Groupe de ressources contenant votre capacité de tissu
- Sélectionner Microsoft.Fabric du Fournisseur de ressources dérouler
- Tapez capacités/YOUR_FABRIC_CAPACITY_NAME sur le ID de ressource court zone de texte où le YOUR_FABRIC_CAPACITY_NAME est le nom de votre capacité Fabric qui dans mon cas est dv01tissu
- Tapez 2023-11-01 sur le Version de l'API cliente zone de texte
Jusqu'à présent, nous avons l'heure actuelle de notre fuseau horaire et l'état actuel de notre capacité Fabric. Ensuite, il faut vérifier l'heure actuelle pour voir si elle est entre 8h et 16h, puis reprendre la capacité si son statut est En pause et ne faites rien si la capacité est déjà en cours d'exécution. Si c'est après 16h et avant 8h, mettez en pause la capacité si son état est A repriset ne faites rien s'il est déjà en pause.
Continuons…
- Clique le Nouvelle étape bouton, recherchez Condition action et sélectionnez-la sous le Contrôle opération
- Cliquez sur la zone de texte de la première condition pour sélectionner la Temps converti du Contenu dynamique
- Changez la condition en est supérieur ou égal à
- Taper 08h00 pour la valeur
- Clique le Ajouter bouton
- Sélectionnez le Ajouter une rangée option
- Sélectionnez le Temps converti du Contenu dynamique encore
- Sélectionner est inférieur ou égal à condition
- Taper 16h00 pour la valeur
D'ACCORD! Prenons un moment pour comprendre où nous en sommes actuellement. En ajoutant le Condition action, nous vérifions si l'heure actuelle est entre 8h et 16h.
Ensuite, nous devons vérifier l’état de la capacité Fabric. Si nous exécutons le workflow maintenant (cliquez sur le Exécuter le déclencheur bouton, puis cliquez sur Courir) et regardez les sorties du Lire une ressource action contenant le État de la capacité sous le Propriétés. C'est exactement ce que nous recherchons. À la valeur du Étatnous devons utiliser l'expression suivante :
body('Read_a_resource')?('properties')?('state')
Sur ce, continuons.
- Clique le Ajouter une action bouton sur le Vrai sortie pour ajouter un nouveau Condition action qui est nommée par défaut Condition 2
- Dans Condition 2 clique le Choisissez une valeur paramètre
- Copiez et collez l'expression ci-dessus dans le Expression boîte
- Cliquez sur D'ACCORD
- Définissez la condition sur est égal à
- Taper En pause dans le Valeur zone de texte
- Clique le Ajouter une action bouton sur le Vrai sortie de Condition 2 et ajoutez le Appeler une opération de ressource
- Sur le Appeler une opération de ressource action, sélectionnez l'action souhaitée Abonnement
- Sélectionnez le souhaité Groupe de ressources
- Sur le Fournisseur de ressources sélectionner Microsoft.Fabric
- Tapez capacités/YOUR_FABRIC_CAPACITY_NAME sur le ID de ressource court zone de texte où le YOUR_FABRIC_CAPACITY_NAME est le nom de votre capacité Fabric, qui dans mon cas est dv01fabric
- Tapez 2023-11-01 sur le Version de l'API cliente zone de texte
- Taper CV sur le Nom de l'action zone de texte
Jusqu'à présent, nous avons vérifié l'heure actuelle de la journée ; s'il est entre 8h et 16h, nous vérifions l'état de notre capacité Fabric. Si c'est En pausenous CV la capacité. L'étape suivante consiste à ajouter une condition similaire à ce que nous avons fait, mais cette fois pour le FAUX sortie du premier Condition action. Il suffit de répéter les étapes 39 à 51 avec un changement mineur d'étape 51 où nous tapons suspendre sur le Version de l'API cliente zone de texte.
L'image suivante montre la solution complète. Juste pour que vous le sachiez, j'ai renommé les actions avec des noms plus propres.
Voici! Tu l'as.
Puisque vous êtes arrivé jusqu’ici, la section bonus suivante ajouterait plus de valeur. Alors continuez à lire…
Vous pouvez améliorer la solution pour répondre à vos besoins. Par exemple, vous pouvez vérifier si la date actuelle est pendant le week-end, puis ne pas exécuter le workflow.
Pour ce faire, procédez comme suit :
- Cliquez sur le bouton points de suspension du Récurrence déclenchement
- Cliquez sur Paramètres
- Clique le Ajouter bouton sous le Conditions de déclenchement section
- Entrer le
@contains('12345', string(dayOfWeek(convertFromUtc(utcNow(), 'New Zealand Standard Time'))))
expression - Clique le Fait bouton
Le processus ci-dessus force le déclencheur à exécuter le flux de travail uniquement pendant les jours de semaine (et non le week-end).
L'expression en question 4 obtient le date et heure actuelles en UTC, le convertit en fuseau horaire de la Nouvelle-Zélandeobtient le jour de la semaine numéro de la semaineet le convertit en chaîne. Enfin, il vérifie si le numéro du jour de la semaine est en jours de la semaine. Dimanche c'est 0lundi c'est 1 etc…
Si vous vivez dans un fuseau horaire différent, vous pouvez trouver Les fuseaux horaires par défaut de Microsoft ici.
Dans cette exploration des capacités de Microsoft Fabric et de l’automatisation d’Azure Logic Apps, nous sommes passés d’une pause et d’une reprise manuelles à une solution automatisée. En créant un workflow Logic Apps, nous avons démontré l'utilité de gérer la capacité Fabric en fonction d'un calendrier défini, optimisant ainsi l'utilisation des ressources sans effort. Dans la partie bonus, nous avons examiné l'adaptabilité de la solution à des besoins spécifiques, comme l'exclusion des week-ends.
J'espère que vous avez apprécié la lecture de ce long blog et que vous le trouverez utile.
Comme toujours, n'hésitez pas à laisser vos commentaires et poser des questions, suivez-moi sur LinkedIn et @_SoheilBakhshi sur X (anciennement Twitter).
En rapport