Condividi tramite


Implementare un sistema di notifica scalabile con Power Platform

Microsoft Power Platform consente di ridimensionare le applicazioni aziendali durante l'integrazione con servizi cloud di livello aziendale per operazioni con volumi elevati. Il sistema di notifica scalabile usa questa funzionalità per inviare SMS e promemoria di posta elettronica per gli appuntamenti archiviati in Microsoft Dataverse. Le funzionalità principali includono:

  • Le notifiche vengono attivate automaticamente una settimana, un giorno e un'ora prima dell'appuntamento.
  • Possibilità di aggiornare o annullare le notifiche quando gli appuntamenti vengono modificati o annullati.
  • Power Apps funge da interfaccia utente per consentire agli utenti di gestire gli appuntamenti in modo efficiente.
  • Supporta migliaia di notifiche al giorno, pur rimanendo affidabili ed efficienti.

Il sistema usa Azure Service Bus per la pianificazione di volumi elevati, Azure Functions per l'elaborazione e il recapito e Dataverse per il rilevamento permanente di appuntamenti e notifiche. Le notifiche vengono inviate tramite SendGrid per posta elettronica e Twilio o Azure Communication Services per GLI SMS.

Questa architettura garantisce scalabilità, affidabilità e manutenibilità, superando le limitazioni dell'affidarsi esclusivamente a Power Automate per orchestrare grandi volumi di notifiche.

Suggerimento

Questo articolo fornisce uno scenario di esempio e un'architettura di esempio generalizzata per illustrare come inviare SMS e promemoria di posta elettronica per gli appuntamenti archiviati in Dataverse. L'esempio di architettura può essere modificato per molti scenari e settori diversi.

Diagramma dell'architettura

Diagramma dell'architettura che mostra la pianificazione degli appuntamenti di Power Apps con i servizi Azure.

Flusso di lavoro

Il flusso di lavoro di sistema invia notifiche in modo affidabile ai tempi corretti e supporta gli aggiornamenti e gli annullamenti:

  1. : gli utenti creano appuntamenti tramite l'applicazione canvas Power Apps. L'applicazione scrive i dati degli appuntamenti direttamente in Dataverse, assicurandosi che solo gli utenti autorizzati possano accedere ai dati in base ai ruoli di sicurezza.

  2. Attivazione eventi: Quando viene creato, aggiornato o annullato un appuntamento, Dataverse attiva un processo lato server, come un plug-in, un webhook o un flusso leggero di Power Automate. Questo evento avvia la logica di pianificazione.

  3. Notification scheduling: la funzione di pianificazione Azure calcola le ore di notifica per una settimana, un giorno e un'ora prima dell'appuntamento. Crea quindi i record di notifica corrispondenti in Dataverse e pianifica i messaggi in Azure Service Bus, archiviando i numeri di sequenza per gli aggiornamenti o gli annullamenti futuri.

  4. Aggiornamenti degli appuntamenti: se un appuntamento viene modificato, la funzione Scheduler annulla le notifiche pianificate in precedenza usando i numeri di sequenza del Service Bus. Aggiorna i record di notifica in Dataverse e riprogramma le notifiche in base ai dettagli del nuovo appuntamento.

  5. Annullamento di appuntamento: quando un appuntamento viene annullato, la funzione Scheduler rimuove tutti i messaggi in sospeso da Azure Service Bus e aggiorna i record di notifica corrispondenti in Dataverse come annullati.

  6. Delivery: la funzione Azure di recapito elabora i messaggi pianificati da Azure Service Bus. Invia notifiche tramite posta elettronica tramite SendGrid e SMS tramite Twilio o Azure Communication Services. Dopo l'invio, la funzione aggiorna il record di notifica con stato, nuovi tentativi ed eventuali informazioni sull'errore.

  7. Monitoraggio e osservabilità: Application Insights e Azure Monitor tengono traccia delle esecuzioni delle funzioni, dell'integrità delle code, della riuscita del recapito e degli insuccessi. Le code dead-letter in Service Bus acquisiscono messaggi non recapitabili per un'analisi successiva.

Components

  • Power Apps (app Canvas): l'applicazione canvas Power Apps funge da interfaccia utente principale per la gestione degli appuntamenti. Consente agli utenti di creare, aggiornare o annullare appuntamenti in un'interfaccia intuitiva e con poco codice. L'app canvas interagisce direttamente con Dataverse per leggere e scrivere record di appuntamenti e notifiche. Fornisce inoltre commenti e suggerimenti in tempo reale all'utente sulla creazione, sugli aggiornamenti o sull'annullamento degli appuntamenti. L'interfaccia utente è progettata per convalidare l'immissione dei dati, gestire conflitti come appuntamenti sovrapposti e fornire fusi orari localizzati per le notifiche.

  • Dataverse

    • Tabella degli appuntamenti: Dataverse funge da sistema di record per tutte le informazioni sugli appuntamenti. Ogni voce di appuntamento include dettagli come il paziente o l'utente, l'orario dell'appuntamento, il tipo di servizio e lo stato. La tabella Appointment è progettata per attivare eventi in caso di operazioni di creazione, aggiornamento o eliminazione. L'Utilità di pianificazione Azure Funzione è in ascolto di questi eventi per calcolare e pianificare le notifiche. Dataverse offre sicurezza predefinita tramite il controllo degli accessi in base al ruolo, le autorizzazioni a livello di campo e il controllo, assicurando che le informazioni riservate sugli appuntamenti siano accessibili solo agli utenti giusti. Inoltre, l'integrazione con Power Platform garantisce l'accesso a bassa latenza e l'interazione senza problemi con altri componenti.

    • tabella Notification: La tabella Notification archivia i metadati per ogni notifica pianificata, il tracciamento del canale (SMS o Email), l'orario di recapito, lo stato (Pianificato, Inviato, Non riuscito o Annullato), il numero di tentativi e il numero di sequenza del Service Bus associato. Il sistema fornisce funzionalità di rilevamento, segnalazione e gestione degli errori in tempo reale per tutte le notifiche mantenendo questi dati in Dataverse. La tabella consente agli amministratori di controllare la cronologia di recapito, monitorare i tentativi non riusciti ed eseguire azioni correttive, se necessario. Supporta anche gli aggiornamenti automatici attivati dalle modifiche degli appuntamenti, assicurando che le notifiche rimangano accurate.

  • Azure Functions

    • Scheduler: la funzione Scheduler calcola gli orari di notifica in base ai dettagli dell'appuntamento. Determina i promemoria per una settimana, un giorno e un'ora prima dell'appuntamento e crea i record corrispondenti in Dataverse. Pianifica inoltre i messaggi in Azure Service Bus, archiviando i numeri di sequenza per consentire l'annullamento o la riprogrammazione futuri. Questa funzione può gestire volumi elevati di appuntamenti senza degradazione delle prestazioni e garantisce l'idempotenza evitando di pianificare notifiche duplicate. La progettazione serverless consente di ridimensionare automaticamente in base al carico degli eventi e garantisce l'efficienza operativa.

    • Delivery: la funzione di recapito elabora i messaggi provenienti da Azure Service Bus all'arrivo del tempo di recapito pianificato. Determina il canale corretto per ogni notifica, ad esempio la posta elettronica tramite SendGrid o SMS tramite Twilio/Azure Communication Services e invia il messaggio di conseguenza. Dopo il recapito, aggiorna il record di notifica in Dataverse con stato e riprova i dati in caso di errore. La funzione implementa anche meccanismi di gestione degli errori, registrazione e ripetizione dei tentativi, assicurandosi che i messaggi vengano recapitati in modo affidabile in caso di errori temporanei o limiti di frequenza del provider. Viene ridimensionato automaticamente con il numero di messaggi in Service Bus per gestire i picchi nel volume di notifica.

  • Azure Service Bus: Azure Service Bus è la spina dorsale del sistema di pianificazione delle notifiche. Offre accodamento di messaggi durevole, ad alta capacità e con tempistiche specifiche, garantendo che i messaggi vengano recapitati esattamente quando necessario. I numeri di sequenza consentono di annullare o riprogrammare i messaggi in caso di modifica di un appuntamento, mantenendo la coerenza. Service Bus supporta anche code di messaggi non recapitabili per acquisire messaggi che hanno esito negativo dopo più tentativi, offrendo agli amministratori la possibilità di analizzare e correggere gli errori. La possibilità di separare la pianificazione dal recapito garantisce che il sistema rimanga reattivo e scalabile.

  • Provider di posta elettronica e SMS: i servizi di comunicazione esterni gestiscono il recapito effettivo delle notifiche. SendGrid viene usato per l'invio di notifiche tramite posta elettronica, fornendo meccanismi affidabili di rilevamento, analisi e ripetizione dei tentativi. Twilio e Azure Communication Services offrono notifiche SMS, supportando in modo affidabile la messaggistica a volumi elevati. La funzione di recapito interagisce con questi provider usando chiavi API sicure archiviate in Azure Key Vault e implementa strategie di ripetizione dei tentativi per gestire gli errori temporanei o i problemi di limitazione della frequenza. Esternalizzando la distribuzione a provider specializzati, il sistema garantisce un'elevata affidabilità e riduce il sovraccarico operativo.

  • Azure Key Vault: è possibile archiviare in modo sicuro tutte le credenziali riservate e le chiavi API in Azure Key Vault. Azure Functions accedere ai segreti tramite identità gestite, eliminando la necessità di archiviare i dati sensibili nel codice o nei file di configurazione. Key Vault garantisce che crittografi le credenziali inattive, controlli l'accesso e applichi automaticamente i criteri di rotazione per mantenere la conformità alla sicurezza.

  • Strumenti di monitoraggio e osservabilità: il sistema usa Application Insights e Azure Monitor per offrire visibilità completa sull'integrità e sulle prestazioni della soluzione. Application Insights tiene traccia delle esecuzioni delle funzioni, delle lunghezze delle code, dello stato del recapito e degli errori, mentre Azure Monitor fornisce avvisi per comportamenti anomali, backlog dei messaggi o errori del servizio. È possibile usare i log e i dati di telemetria per la risoluzione dei problemi, l'analisi operativa e la pianificazione della capacità, assicurandosi che gli amministratori dispongano delle informazioni necessarie per mantenere un'elevata affidabilità operativa e prestazioni.

Dettagli dello scenario

Questa soluzione è progettata per le organizzazioni che devono inviare promemoria tempestivi per gli appuntamenti pianificati, ad esempio cliniche sanitarie, centri di vaccinazione o aziende basate su servizi. Gli utenti interagiscono tramite Power Apps per immettere i dettagli dell'appuntamento, archiviati in Dataverse e elaborati immediatamente per pianificare le notifiche. Il sistema calcola automaticamente i tempi di promemoria, ad esempio una settimana, un giorno e un'ora prima dell'appuntamento, e garantisce che i promemoria vengano recapitati tramite il canale appropriato.

Il sistema può gestire migliaia di notifiche giornaliere senza riduzione delle prestazioni, abilitate dalla separazione tra gestione degli appuntamenti, pianificazione e recapito dei messaggi. Garantisce che i promemoria rimangano accurati anche quando gli appuntamenti vengono spostati o annullati tramite una riprogrammazione o la rimozione dinamica dei messaggi di Service Bus. Ogni passaggio del processo viene registrato e rilevato. Questo approccio garantisce che sia gli amministratori che il personale di supporto abbiano visibilità sul comportamento del sistema e sullo stato di ogni notifica inviata.

Considerazioni

Queste considerazioni implementano i pilastri di Power Platform Well-Architected, un insieme di principi guida che migliorano la qualità di un carico di lavoro. Per altre informazioni, vedere Microsoft Power Platform Well-Architected.

Security

Il sistema integra la sicurezza in tutto usando Microsoft Entra ID per i ruoli identity e Dataverse per limitare l'accesso a appuntamenti e notifiche. Power Apps gli utenti eseguono l'autenticazione usando Microsoft Entra ID, assicurandosi che tutte le interazioni con Dataverse siano autorizzate e registrate. Azure Functions usare le identità gestite per interagire in modo sicuro con Dataverse, Service Bus e Key Vault senza archiviare le credenziali nei file di codice o di configurazione.

Archiviare le credenziali sensibili, ad esempio Le chiavi SendGrid e Twilio, solo in Azure Key Vault e accedervi tramite identità gestite. È possibile proteggere ulteriormente la comunicazione tra i servizi Azure usando endpoint privati e reti virtuali, riducendo l'esposizione a Internet pubblico. Tutti gli scambi di messaggi tra i componenti del sistema rispettano gli standard di comunicazione crittografati per proteggere i dati inattivi e in transito.

Eccellenza operativa

È possibile ottenere l'eccellenza operativa tramite il monitoraggio continuo, l'osservabilità e l'invio di avvisi automatizzati. Application Insights raccoglie dati di telemetria dettagliati dai Azure Functions, inclusi tempi di esecuzione, errori, tentativi e metriche delle prestazioni. Azure Monitor monitora lo stato di salute delle code di Azure Service Bus, identificando potenziali colli di bottiglia o backlog. Le code di messaggi non recapitabili forniscono un meccanismo per l'acquisizione e la risoluzione dei problemi dei messaggi che non vengono elaborati dopo più tentativi.

Gli amministratori possono configurare gli avvisi per notificarli degli errori correlati all'elaborazione dei messaggi, alle interruzioni del provider o all'aumento anomalo della coda. Dataverse gestisce un audit trail all'interno della tabella Notification, consentendo agli amministratori di tenere traccia del ciclo di vita di ogni notifica. Poiché Azure Functions sono senza stato e ridimensionano automaticamente, il sistema può rispondere agli aumenti improvvisi del volume dei messaggi senza intervento manuale, garantendo prestazioni e tempi di attività coerenti.

Efficienza delle prestazioni

L'architettura è ottimizzata per prestazioni e scalabilità elevate. Azure Service Bus consente di gestire in modo efficiente le notifiche pianificate senza il sovraccarico che i ritardi basati su Power Automate introdurrebbero. La separazione della pianificazione e del recapito in funzioni separate consente a ogni componente di ridimensionarsi in modo indipendente in base alla richiesta. La funzione di consegna trae beneficio dal ridimensionamento automatico, consentendo di gestire picchi di traffico nei messaggi in uscita senza influire sui sistemi orientati agli utenti.

Inoltre, l'uso di identità gestite e strategie di memorizzazione nella cache per l'autenticazione del provider riduce la latenza durante il recapito dei messaggi. Il sistema riduce al minimo il sovraccarico di archiviazione non necessario mantenendo solo i metadati essenziali in Dataverse e supportando le strategie di archiviazione per le notifiche meno recenti. Combinando le funzionalità di Power Platform con l'infrastruttura di messaggistica scalabile di Azure, il sistema garantisce una distribuzione rapida, efficiente e conveniente delle notifiche su scala aziendale.

Collaboratore

Microsoft gestisce questo articolo. I collaboratori seguenti hanno scritto questo articolo.

Autori principali: