Delen via


Een schaalbaar systeem voor meldingen implementeren met Power Platform

Microsoft Power Platform biedt een manier om zakelijke toepassingen te schalen terwijl u integreert met zakelijke cloudservices voor grootschalige bewerkingen. Het schaalbare meldingssysteem gebruikt deze mogelijkheid om sms- en e-mailherinneringen te verzenden voor afspraken die zijn opgeslagen in Microsoft Dataverse. Belangrijke functies zijn onder andere:

  • Meldingen worden automatisch één week, één dag en één uur vóór de afspraak geactiveerd.
  • Mogelijkheid om meldingen bij te werken of te annuleren wanneer afspraken worden gewijzigd of geannuleerd.
  • Power Apps fungeert als de gebruikersinterface voor gebruikers om afspraken efficiënt te beheren.
  • Ondersteunt duizenden meldingen per dag en blijft betrouwbaar en presterend.

Het systeem maakt gebruik van Azure Service Bus voor planning met grote volumes, Azure Functions voor verwerking en levering, en Dataverse voor permanente tracering van afspraken en meldingen. Meldingen worden verzonden via SendGrid voor e-mail en Twilio of Azure Communication Services voor SMS.

Deze architectuur zorgt voor schaalbaarheid, betrouwbaarheid en onderhoudbaarheid, waardoor de beperkingen van alleen Power Automate worden overschreden voor het organiseren van grote hoeveelheden meldingen.

Aanbeveling

Dit artikel bevat een voorbeeldscenario en een gegeneraliseerde voorbeeldarchitectuur om te laten zien hoe u sms- en e-mailherinneringen verzendt voor afspraken die zijn opgeslagen in Dataverse. Het architectuurvoorbeeld kan worden aangepast voor veel verschillende scenario's en branches.

Architectuurschema

Architectuurdiagram met de planning van Power Apps-afspraakplanning met Azure-services.

Werkproces

De systeemwerkstroom verzendt op betrouwbare wijze meldingen op de juiste tijden en ondersteunt updates en annuleringen:

  1. Afspraak maken: gebruikers maken afspraken via de Power Apps-canvastoepassing. De toepassing schrijft de afspraakgegevens rechtstreeks naar Dataverse, zodat alleen geautoriseerde gebruikers toegang hebben tot de gegevens op basis van beveiligingsrollen.

  2. Gebeurtenistriggering: Wanneer een afspraak wordt gemaakt, bijgewerkt of geannuleerd, start Dataverse een server-side proces, zoals een invoegtoepassing, webhook of lichte Power Automate-flow. Met deze gebeurtenis wordt de planningslogica gestart.

  3. Planning van meldingen: de Azure-functie Scheduler berekent meldingstijden voor één week, één dag en één uur vóór de afspraak. Vervolgens worden bijbehorende meldingsrecords gemaakt in Dataverse en worden berichten in Azure Service Bus gepland, waarbij volgnummers worden opgeslagen voor toekomstige updates of annuleringen.

  4. Afspraakupdates: Als een afspraak wordt gewijzigd, annuleert de Scheduler-functie eerder geplande meldingen met behulp van Service Bus-volgnummers. Hiermee worden de meldingsrecords in Dataverse bijgewerkt en worden de meldingen opnieuw gepland op basis van de nieuwe afspraakgegevens.

  5. Annulering van afspraken: wanneer een afspraak wordt geannuleerd, worden alle berichten verwijderd uit Azure Service Bus en worden de bijbehorende meldingsrecords in Dataverse bijgewerkt als geannuleerd.

  6. Bezorging van meldingen: De Azure-functie Delivery verwerkt geplande berichten van Azure Service Bus. E-mailmeldingen worden verzonden via SendGrid en SMS'en worden verstuurd via Twilio of Azure Communication Services. Nadat de functie is verzonden, wordt de meldingsrecord bijgewerkt met status, nieuwe pogingen en eventuele foutinformatie.

  7. Bewaking en waarneembaarheid: Uitvoeringen van functies van Application Insights en Azure Monitor, wachtrijstatus, geslaagde levering en fouten. In dead-letter-wachtrijen in Service Bus worden onbestelbare berichten vastgelegd voor latere analyse.

Components

  • Power Apps (canvas-app): de Power Apps-canvastoepassing fungeert als de primaire gebruikersinterface voor het beheren van afspraken. Hiermee kunnen gebruikers afspraken maken, bijwerken of annuleren in een intuïtieve interface met weinig code. De canvas-app communiceert rechtstreeks met Dataverse om afspraak- en meldingsrecords te lezen en te schrijven. Het biedt ook realtime feedback aan de gebruiker over het maken, bijwerken of annuleren van afspraken. De gebruikersinterface is ontworpen om gegevensinvoer te valideren, conflicten zoals overlappende afspraken af te handelen en gelokaliseerde tijdzones voor meldingen te bieden.

  • Dataverse

    • Afspraaktabel: Dataverse fungeert als het recordsysteem voor alle afspraakgegevens. Elke afspraakvermelding bevat details zoals de patiënt of gebruiker, afspraaktijd, servicetype en status. De tabel Afspraak is ontworpen om gebeurtenissen te activeren bij het maken, bijwerken of verwijderen van bewerkingen. De Azure-functie Scheduler luistert naar deze gebeurtenissen om meldingen te berekenen en te plannen. Dataverse biedt ingebouwde beveiliging via op rollen gebaseerd toegangsbeheer, machtigingen op veldniveau en controle, zodat gevoelige afspraakgegevens alleen toegankelijk zijn voor de juiste gebruikers. Daarnaast zorgt de integratie met Power Platform voor toegang met lage latentie en naadloze interactie met andere onderdelen.

    • Meldingstabel: In de meldingstabel worden metagegevens opgeslagen voor elke geplande melding, het bijhouden van het kanaal (SMS of e-mail), de geplande levertijd, de status (gepland, verzonden, mislukt of geannuleerd), het aantal pogingen en het bijbehorende Service Bus-volgnummer. Het systeem biedt realtime tracering, rapportage en foutafhandeling voor alle meldingen door deze gegevens in Dataverse te onderhouden. Met de tabel kunnen beheerders de leveringsgeschiedenis controleren, mislukte pogingen controleren en zo nodig corrigerende maatregelen nemen. Het biedt ook ondersteuning voor automatische updates die worden geactiveerd door wijzigingen in afspraken, zodat meldingen nauwkeurig blijven.

  • Azure Functions

    • Scheduler: De Scheduler-functie berekent meldingstijden op basis van afspraakgegevens. Het bepaalt herinneringen voor één week, één dag en één uur vóór de afspraak en maakt bijbehorende records in Dataverse. Ook worden berichten in Azure Service Bus gepland, waarbij de volgnummers worden opgeslagen om toekomstige annulering of herplanning mogelijk te maken. Deze functie kan grote hoeveelheden afspraken verwerken zonder prestatievermindering en zorgt voor idempotentie, zodat er geen dubbele meldingen worden gepland. Het serverloze ontwerp maakt het mogelijk om automatisch te schalen op basis van de belasting van gebeurtenissen en zorgt voor operationele efficiëntie.

    • Bezorging: De bezorgingsfunctie verwerkt berichten van Azure Service Bus wanneer de geplande levertijd binnenkomt. Het bepaalt het juiste kanaal voor elke melding, zoals e-mail via SendGrid of SMS via Twilio/Azure Communication Services, en verzendt het bericht dienovereenkomstig. Na levering wordt de meldingsrecord in Dataverse bijgewerkt met de status en worden gegevens opnieuw geprobeerd als er een fout optreedt. De functie implementeert ook mechanismen voor foutafhandeling, logboekregistratie en opnieuw proberen, zodat berichten betrouwbaar worden bezorgd als er tijdelijke fout- of providerfrequentielimieten zijn. Het wordt automatisch geschaald op basis van het aantal berichten in de Service Bus om pieken in het volume van meldingen aan te kunnen.

  • Azure Service Bus: Azure Service Bus is de backbone van het systeem voor meldingenplanning. Het biedt duurzame, hoge doorvoer en tijdspecifieke berichtenwachtrijen, zodat berichten precies worden bezorgd wanneer dat nodig is. Met volgnummers kunnen berichten worden geannuleerd of opnieuw gepland als er een wijziging in de afspraak is, waardoor consistentie behouden blijft. Service Bus biedt ook ondersteuning voor dead-letter queues om berichten vast te leggen die na meerdere afleverpogingen niet worden bezorgd, zodat beheerders fouten kunnen onderzoeken en corrigeren. De mogelijkheid om planning los te koppelen van levering zorgt ervoor dat het systeem responsief en schaalbaar blijft.

  • E-mail- en SMS-providers: externe communicatieservices verwerken de daadwerkelijke levering van meldingen. SendGrid wordt gebruikt voor het verzenden van e-mailmeldingen, het bieden van robuuste mechanismen voor tracering, analyses en nieuwe pogingen. Twilio en Azure Communication Services leveren sms-meldingen, die ondersteuning bieden voor berichten met een hoog volume met betrouwbaarheid. De Delivery Function communiceert met deze providers met behulp van beveiligde API-sleutels die zijn opgeslagen in Azure Key Vault en implementeert strategieën voor opnieuw proberen om tijdelijke fouten of snelheidsbeperkingsproblemen af te handelen. Door levering aan gespecialiseerde providers uit te besteden, zorgt het systeem voor hoge betrouwbaarheid en vermindert de operationele overhead.

  • Azure Key Vault: u kunt alle gevoelige referenties en API-sleutels veilig opslaan in Azure Key Vault. Azure Functions heeft toegang tot geheimen via beheerde identiteiten, waardoor gevoelige gegevens niet meer moeten worden opgeslagen in code- of configuratiebestanden. Key Vault zorgt ervoor dat referenties at-rest worden versleuteld, de toegang wordt gecontroleerd en roulatiebeleid automatisch wordt toegepast om de beveiligingsnaleving te handhaven.

  • Hulpprogramma's voor bewaking en waarneembaarheid: het systeem maakt gebruik van Application Insights en Azure Monitor om volledig inzicht te krijgen in de status en prestaties van de oplossing. Application Insights houdt functie-uitvoeringen, wachtrijlengten, leveringsstatus en fouten bij, terwijl Azure Monitor waarschuwingen biedt voor abnormaal gedrag, berichtenachterstanden of servicefouten. U kunt logboeken en telemetrie gebruiken voor probleemoplossing, operationele analyse en capaciteitsplanning, zodat beheerders over de benodigde informatie beschikken om een hoge operationele betrouwbaarheid en prestaties te behouden.

Scenariodetails

Deze oplossing is ontworpen voor organisaties die tijdig herinneringen moeten verzenden voor geplande afspraken, zoals gezondheidszorgklinieken, vaccinatiecentra of servicebedrijven. Gebruikers communiceren via Power Apps om afspraakgegevens in te voeren, die zijn opgeslagen in Dataverse en onmiddellijk worden verwerkt om meldingen te plannen. Het systeem berekent automatisch herinneringstijden, zoals één week, één dag en één uur vóór de afspraak, en zorgt ervoor dat deze herinneringen via het juiste kanaal worden bezorgd.

Het systeem kan duizenden dagelijkse meldingen verwerken zonder prestatievermindering, ingeschakeld door de scheiding tussen afspraakbeheer, planning en berichtbezorging. Het zorgt ervoor dat herinneringen nog steeds nauwkeurig blijven, zelfs wanneer afspraken worden verplaatst of geannuleerd door Service Bus-berichten dynamisch opnieuw te plannen of te verwijderen. Elke stap van het proces wordt geregistreerd en bijgehouden. Deze aanpak zorgt ervoor dat zowel beheerders als ondersteuningsmedewerkers inzicht hebben in het systeemgedrag en de status van elke verzonden melding.

Overwegingen

Deze overwegingen implementeren de pijlers van Power Platform Well-Architected, een set richtlijnen die de kwaliteit van een workload verbeteren. Meer informatie in Microsoft Power Platform Well-Architected.

Security

Het systeem integreert de beveiliging door gebruik te maken van Microsoft Entra ID voor identiteits- en Dataverse-rollen om de toegang tot afspraken en meldingen te beperken. Power Apps-gebruikers verifiëren met behulp van Microsoft Entra ID, zodat alle interacties met Dataverse zijn geautoriseerd en geregistreerd. Azure Functions gebruikt beheerde identiteiten om veilig te communiceren met Dataverse, Service Bus en Key Vault zonder referenties op te slaan in code- of configuratiebestanden.

Sla gevoelige referenties, zoals SendGrid- en Twilio-sleutels, alleen op in Azure Key Vault en open ze via beheerde identiteiten. U kunt de communicatie tussen Azure-services verder beveiligen met behulp van privé-eindpunten en virtuele netwerken, waardoor de blootstelling aan het openbare internet wordt verminderd. Alle berichtenuitwisseling tussen de onderdelen van het systeem voldoet aan versleutelde communicatiestandaarden om gegevens in rust en tijdens transport te beschermen.

Operationele uitmuntendheid

U bereikt operationele uitmuntendheid door continue bewaking, waarneembaarheid en geautomatiseerde waarschuwingen. Application Insights verzamelt gedetailleerde telemetrie van de Azure Functions, waaronder uitvoeringstijden, fouten, nieuwe pogingen en metrische prestatiegegevens. Azure Monitor houdt de status van Azure Service Bus-wachtrijen bij, waardoor potentiële knelpunten of achterstanden worden geïdentificeerd. Dead-letter wachtrijen bieden een mechanisme voor het vastleggen en het onderzoeken van berichten die na herhaalde pogingen niet verwerkt worden.

Beheerders kunnen waarschuwingen configureren om hen op de hoogte te stellen van fouten met betrekking tot berichtverwerking, providerstoringen of abnormale wachtrijgroei. Dataverse onderhoudt een audittrail in de meldingstabel, zodat beheerders de levenscyclus van elke melding kunnen bijhouden. Omdat Azure Functions staatloos is en automatisch wordt geschaald, kan het systeem reageren op plotselinge toenames in het berichtvolume zonder handmatige tussenkomst, waardoor consistente prestaties en uptime worden gegarandeerd.

Prestatie-efficiëntie

De architectuur is geoptimaliseerd voor hoge prestaties en schaalbaarheid. Azure Service Bus maakt een efficiënte verwerking van geplande meldingen mogelijk zonder de overhead die vertragingen op basis van Power Automate zouden veroorzaken. Door de scheiding van planning en levering in afzonderlijke functies kan elk onderdeel onafhankelijk worden geschaald op basis van de vraag. De bezorgingsfunctie profiteert van automatisch schalen, waardoor pieken in uitgaande berichten kunnen worden verwerkt zonder dat dit van invloed is op gebruikersgerichte systemen.

Daarnaast vermindert het gebruik van beheerde identiteiten en cachingstrategieën voor providerverificatie de latentie tijdens de bezorging van berichten. Het systeem minimaliseert onnodige opslagoverhead door alleen essentiële metagegevens in Dataverse te bewaren en archiveringsstrategieën voor oudere meldingen te ondersteunen. Door de mogelijkheden van Power Platform te combineren met de schaalbare berichteninfrastructuur van Azure, zorgt het systeem voor snelle, efficiënte en rendabele levering van meldingen op ondernemingsniveau.

Donateur

Microsoft onderhoudt dit artikel. De volgende inzenders hebben dit artikel geschreven.

Hoofdauteurs: