Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Microsoft Power Platform offre un moyen de mettre à l’échelle les applications métier tout en s’intégrant à des services cloud de qualité entreprise pour les opérations à volume élevé. Le système de notification scalable utilise cette fonctionnalité pour envoyer des sms et des rappels par e-mail pour les rendez-vous stockés dans Microsoft Dataverse. Les principales fonctionnalités sont les suivantes :
- Les notifications sont automatiquement déclenchées une semaine, un jour et une heure avant le rendez-vous.
- Possibilité de mettre à jour ou d’annuler des notifications lorsque les rendez-vous sont modifiés ou annulés.
- Power Apps sert d’interface utilisateur pour que les utilisateurs gèrent efficacement les rendez-vous.
- Prend en charge des milliers de notifications par jour tout en restant fiable et performant.
Le système utilise Azure Service Bus pour la planification à volume élevé, Azure Functions pour le traitement et la remise, et Dataverse pour le suivi persistant des rendez-vous et des notifications. Les notifications sont envoyées via SendGrid pour l’e-mail et Twilio ou Azure Communication Services pour SMS.
Cette architecture garantit l’extensibilité, la fiabilité et la maintenance, en dépassant les limitations de la confiance uniquement sur Power Automate pour orchestrer de grands volumes de notifications.
Conseil / Astuce
Cet article fournit un exemple de scénario et un exemple d’architecture généralisé pour illustrer comment envoyer des sms et des rappels par e-mail pour les rendez-vous stockés dans Dataverse. L’exemple d’architecture peut être modifié pour de nombreux scénarios et secteurs différents.
Diagramme d’architecture
Flux de travail
Le flux de travail système envoie de manière fiable des notifications aux moments appropriés et prend en charge les mises à jour et les annulations :
Création de rendez-vous : les utilisateurs créent des rendez-vous via l’application canevas Power Apps. L’application écrit les données de rendez-vous directement dans Dataverse, ce qui garantit que seuls les utilisateurs autorisés peuvent accéder aux données en fonction des rôles de sécurité.
Déclencheur d’événement : lorsqu’un rendez-vous est créé, mis à jour ou annulé, Dataverse déclenche un processus côté serveur, tel qu’un plug-in, un webhook ou un flux Power Automate léger. Cet événement lance la logique de planification.
Planification des notifications : La fonction Azure Scheduler calcule les heures de notification pendant une semaine, un jour et une heure avant le rendez-vous. Il crée ensuite des enregistrements de notification correspondants dans Dataverse et planifie des messages dans Azure Service Bus, stockant des numéros de séquence pour les futures mises à jour ou annulations.
Mises à jour de rendez-vous : si un rendez-vous est modifié, la fonction planificateur annule les notifications planifiées précédemment à l’aide des numéros de séquence Service Bus. Il met à jour les enregistrements de notification dans Dataverse et replanifie les notifications en fonction des nouveaux détails du rendez-vous.
Annulation de rendez-vous : lorsqu’un rendez-vous est annulé, la fonction planificateur supprime tous les messages en attente d’Azure Service Bus et met à jour les enregistrements de notification correspondants dans Dataverse comme annulés.
Remise de notification : la fonction Azure de livraison traite les messages planifiés à partir d’Azure Service Bus. Il envoie des notifications par e-mail via SendGrid et SMS via Twilio ou Azure Communication Services. Après l’envoi, la fonction met à jour l’enregistrement de notification avec l’état, les nouvelles tentatives et toutes les informations d’erreur.
Surveillance et observabilité : Application Insights et Azure Monitor effectuent le suivi des exécutions de fonctions, l’intégrité de la file d’attente, la réussite de la livraison et les échecs. Les files d’attente de lettres mortes dans Service Bus capturent les messages non remis pour une analyse ultérieure.
Components
Power Apps (application canevas) : l’application canevas Power Apps sert d’interface utilisateur principale pour la gestion des rendez-vous. Il permet aux utilisateurs de créer, mettre à jour ou annuler des rendez-vous dans une interface intuitive et à faible code. L’application canevas interagit directement avec Dataverse pour lire et écrire des enregistrements de rendez-vous et de notification. Il fournit également des commentaires en temps réel à l’utilisateur sur la création, les mises à jour ou l’annulation de rendez-vous réussies. L’interface utilisateur est conçue pour valider l’entrée de données, gérer les conflits tels que les rendez-vous qui se chevauchent et fournir des fuseaux horaires localisés pour les notifications.
-
Table de rendez-vous : Dataverse agit comme système d’enregistrement pour toutes les informations de rendez-vous. Chaque entrée de rendez-vous inclut des détails tels que le patient ou l’utilisateur, l’heure du rendez-vous, le type de service et l’état. La table Rendez-vous est conçue pour déclencher des événements lors des opérations de création, de mise à jour ou de suppression. La fonction Azure Scheduler écoute ces événements pour calculer et planifier des notifications. Dataverse fournit une sécurité intégrée via le contrôle d’accès en fonction du rôle, les autorisations au niveau du champ et l’audit, ce qui garantit que les informations de rendez-vous sensibles sont accessibles uniquement aux utilisateurs appropriés. En outre, son intégration à Power Platform garantit un accès à faible latence et une interaction transparente avec d’autres composants.
Tableau de notification : la table de notification stocke les métadonnées pour chaque notification planifiée, le suivi du canal (SMS ou e-mail), l’heure de remise planifiée, l’état (Planifié, Envoyé, Échec ou Annulation), le nombre de tentatives et le numéro de séquence Service Bus associé. Le système fournit le suivi, la création de rapports et la gestion des erreurs en temps réel pour toutes les notifications en conservant ces données dans Dataverse. La table permet aux administrateurs d’auditer l’historique de remise, de surveiller les tentatives ayant échoué et de prendre des mesures correctives si nécessaire. Il prend également en charge les mises à jour automatiques déclenchées par les modifications de rendez-vous, ce qui garantit que les notifications restent précises.
-
Planificateur : la fonction scheduler calcule les heures de notification en fonction des détails du rendez-vous. Il détermine les rappels pendant une semaine, un jour et une heure avant le rendez-vous et crée des enregistrements correspondants dans Dataverse. Il planifie également les messages dans Azure Service Bus, en stockant les numéros de séquence pour permettre une annulation ou une réécriture ultérieures. Cette fonction peut gérer un volume élevé de rendez-vous sans dégradation des performances et garantit l´idempotence afin d´éviter la planification de notifications en double. Sa conception serverless lui permet d'évoluer automatiquement en fonction de la charge événementielle et garantit l'efficacité opérationnelle.
Remise : la fonction de remise traite les messages d’Azure Service Bus lorsque leur heure de remise planifiée arrive. Il détermine le canal approprié pour chaque notification, par exemple par e-mail via SendGrid ou SMS via Twilio/Azure Communication Services, et envoie le message en conséquence. Après la remise, il met à jour l’enregistrement de notification dans Dataverse avec l’état et les données de nouvelle tentative en cas d’échec. La fonction implémente également la gestion des erreurs, la journalisation et les mécanismes de nouvelle tentative, ce qui garantit qu’il remet les messages de manière fiable en cas de défaillance temporaire ou de limites de débit du fournisseur. Il est mis à l’échelle automatiquement avec le nombre de messages dans Service Bus pour gérer les pics de volume des notifications.
Azure Service Bus : Azure Service Bus est l’épine dorsale du système de planification des notifications. Il fournit une mise en file d’attente de messages durable, à débit élevé et spécifique au temps, ce qui garantit qu’il remet des messages exactement quand cela est nécessaire. Les numéros de séquence permettent d’annuler ou de replanifier les messages s’il existe une modification de rendez-vous, en conservant la cohérence. Service Bus prend également en charge les boîtes de lettres mortes pour capturer les messages qui échouent après plusieurs tentatives, ce qui permet aux administrateurs d'examiner et de corriger les problèmes. Sa capacité à dissocier la planification de la livraison garantit que le système reste réactif et évolutif.
Fournisseurs e-mail et SMS : les services de communication externes gèrent la remise réelle des notifications. SendGrid est utilisé pour envoyer des notifications par e-mail, fournissant des mécanismes de suivi, d’analyse et de nouvelle tentative robustes. Twilio et Azure Communication Services fournissent des notifications SMS, prenant en charge la messagerie à volume élevé avec fiabilité. La fonction de remise interagit avec ces fournisseurs à l’aide de clés API sécurisées stockées dans Azure Key Vault et implémente des stratégies de nouvelle tentative pour gérer les erreurs temporaires ou les problèmes de limitation de débit. En externalisant la livraison à des fournisseurs spécialisés, le système garantit une fiabilité élevée et réduit la surcharge opérationnelle.
Azure Key Vault : vous pouvez stocker en toute sécurité toutes les informations d’identification sensibles et les clés API dans Azure Key Vault. Azure Functions accède aux secrets par le biais d’identités managées, ce qui élimine la nécessité de stocker des données sensibles dans des fichiers de code ou de configuration. Key Vault garantit qu’il chiffre les informations d’identification au repos, audite l’accès et applique automatiquement des stratégies de rotation pour maintenir la conformité de la sécurité.
Outils de supervision et d’observabilité : le système utilise Application Insights et Azure Monitor pour fournir une visibilité complète de l’intégrité et des performances de la solution. Application Insights suit les exécutions de fonctions, les longueurs de file d’attente, l’état de remise et les échecs, tandis qu’Azure Monitor fournit des alertes pour le comportement anormal, les backlogs de messages ou les échecs de service. Vous pouvez utiliser les journaux et les données de télémétrie pour la résolution des problèmes, l’analyse opérationnelle et la planification de la capacité, ce qui garantit que les administrateurs disposent des informations nécessaires pour maintenir une fiabilité et des performances opérationnelles élevées.
Détails du scénario
Cette solution est conçue pour les organisations qui doivent envoyer des rappels opportuns pour les rendez-vous planifiés, tels que les cliniques de santé, les centres de vaccination ou les entreprises basées sur des services. Les utilisateurs interagissent via Power Apps pour entrer les détails de rendez-vous, qui sont stockés dans Dataverse et immédiatement traités pour planifier des notifications. Le système calcule automatiquement les heures de rappel, telles qu’une semaine, un jour et une heure avant le rendez-vous, et garantit qu’elle remet ces rappels via le canal approprié.
Le système peut gérer des milliers de notifications quotidiennes sans dégradation des performances, activée par la séparation entre la gestion des rendez-vous, la planification et la remise des messages. Il garantit que les rappels continuent d’être exacts même lorsque les rendez-vous sont décalés ou annulés en rééchantisant ou en supprimant dynamiquement les messages Service Bus. Chaque étape du processus est enregistrée et suivie. Cette approche garantit que les administrateurs et le personnel de support ont une visibilité sur le comportement du système et l’état de chaque notification envoyée.
Considérations
Ces considérations mettent en œuvre les piliers de Power Platform Well-Architected, un ensemble de principes directeurs qui améliorent la qualité d’une charge de travail. Pour en savoir plus, consultez la rubrique Microsoft Power Platform Well-Architected.
Security
Le système intègre la sécurité tout au long de l’utilisation de l’ID Microsoft Entra pour les rôles d’identité et de Dataverse afin de restreindre l’accès aux rendez-vous et aux notifications. Les utilisateurs Power Apps s’authentifient à l’aide de l’ID Microsoft Entra, ce qui garantit que toutes les interactions avec Dataverse sont autorisées et enregistrées. Azure Functions utilise des identités managées pour interagir en toute sécurité avec Dataverse, Service Bus et Key Vault sans stocker d’informations d’identification dans du code ou des fichiers de configuration.
Stockez les informations d’identification sensibles, telles que les clés SendGrid et Twilio, uniquement dans Azure Key Vault et y accédez via des identités managées. Vous pouvez sécuriser davantage la communication entre les services Azure à l’aide de points de terminaison privés et de réseaux virtuels, ce qui réduit l’exposition à l’Internet public. Tous les échanges de messages entre les composants du système respectent les normes de communication chiffrées pour protéger les données au repos et en transit.
Excellence opérationnelle
Vous obtenez une excellence opérationnelle grâce à la surveillance continue, à l’observabilité et à l’alerte automatisée. Application Insights collecte des données de télémétrie détaillées à partir d’Azure Functions, notamment les temps d’exécution, les échecs, les nouvelles tentatives et les métriques de performances. Azure Monitor surveille l’intégrité des files d’attente Azure Service Bus, en identifiant les goulots d’étranglement ou les arriérés potentiels. Les files d'attente des lettres mortes fournissent un mécanisme permettant de capturer et de dépanner les messages qui échouent à être traités après plusieurs tentatives.
Les administrateurs peuvent configurer des alertes pour les avertir des échecs liés au traitement des messages, aux pannes du fournisseur ou à une croissance anormale de la file d’attente. Dataverse gère une piste d’audit dans la table de notification, ce qui permet aux administrateurs de suivre le cycle de vie de chaque notification. Étant donné qu’Azure Functions sont sans état et se mettent à l'échelle automatiquement, le système peut répondre à des augmentations soudaines du volume de messages sans intervention manuelle, assurant des performances et une disponibilité cohérentes.
Efficacité des performances
L’architecture est optimisée pour des performances et une scalabilité élevées. Azure Service Bus permet une gestion efficace des notifications planifiées sans la surcharge que les retards basés sur Power Automate introduireaient. La séparation de la planification et de la remise en fonctions distinctes permet à chaque composant de s’adapter indépendamment en fonction de la demande. La fonction de distribution bénéficie de la mise à l'échelle automatique, ce qui lui permet de traiter des pics de messages sortants sans impact sur les systèmes orientés vers l'utilisateur.
En outre, l’utilisation d’identités managées et de stratégies de mise en cache pour l’authentification du fournisseur réduit la latence pendant la remise des messages. Le système réduit la surcharge de stockage inutile en conservant uniquement les métadonnées essentielles dans Dataverse et en prenant en charge les stratégies d’archivage pour les notifications plus anciennes. En combinant les fonctionnalités de Power Platform avec l’infrastructure de messagerie évolutive d’Azure, le système garantit une livraison de notification rapide, efficace et économique à l’échelle de l’entreprise.
Collaborateur
Microsoft gère cet article. Les contributeurs suivants ont écrit cet article.
Auteurs principaux :
- Summit Bajracharya, Architecte de solutions