Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Microsoft Power Platform fornece uma maneira de dimensionar aplicativos de negócios durante a integração com serviços de nuvem de nível empresarial para operações de alto volume. O sistema de notificação escalonável usa esse recurso para enviar sms e lembretes de email para compromissos armazenados no Microsoft Dataverse. Os principais recursos incluem:
- As notificações são disparadas automaticamente uma semana, um dia e uma hora antes do compromisso.
- Capacidade de atualizar ou cancelar notificações quando compromissos são modificados ou cancelados.
- O Power Apps serve como a interface do usuário para que os usuários gerenciem compromissos com eficiência.
- Dá suporte a milhares de notificações por dia, mantendo-se confiável e com bom desempenho.
O sistema usa o Barramento de Serviço do Azure para agendamento de alto volume, a Azure Functions para processamento e entrega e o Dataverse para acompanhamento persistente de compromissos e notificações. As notificações são enviadas por meio do SendGrid para email e do Twilio ou dos Serviços de Comunicação do Azure para SMS.
Essa arquitetura garante escalabilidade, confiabilidade e manutenção, superando as limitações de depender apenas do Power Automate para orquestrar grandes volumes de notificações.
Dica
Este artigo fornece um cenário de exemplo e uma arquitetura de exemplo generalizada para ilustrar como enviar SMS e lembretes de email para compromissos armazenados no Dataverse. O exemplo de arquitetura pode ser modificado para muitos cenários e setores diferentes.
Diagrama de arquitetura
Workflow
O fluxo de trabalho do sistema envia notificações de forma confiável nos horários corretos e dá suporte a atualizações e cancelamentos:
Criação de compromisso: os usuários criam compromissos por meio do aplicativo de tela do Power Apps. O aplicativo grava os dados de compromisso diretamente no Dataverse, garantindo que somente usuários autorizados possam acessar os dados com base em funções de segurança.
Disparo de evento: quando um compromisso é criado, atualizado ou cancelado, o Dataverse dispara um processo no lado do servidor, como um plug-in, webhook ou fluxo do Power Automate leve. Esse evento inicia a lógica de agendamento.
Agendamento de notificação: o Agendador do Azure Function calcula os horários de notificação para uma semana, um dia e uma hora antes do compromisso. Em seguida, ele cria registros de notificação correspondentes no Dataverse e agenda mensagens no Barramento de Serviço do Azure, armazenando números de sequência para atualizações ou cancelamentos futuros.
Atualizações de compromisso: se um compromisso for modificado, a Função de Agendador cancelará as notificações agendadas anteriormente usando números de sequência do Barramento de Serviço. Ele atualiza os registros de notificação no Dataverse e reagenda as notificações com base nos novos detalhes do compromisso.
Cancelamento de compromisso: quando um compromisso é cancelado, a Função de Agendamento remove todas as mensagens pendentes do Barramento de Serviço do Azure e atualiza os registros de notificação correspondentes no Dataverse como cancelados.
Entrega de notificação: a função do Azure Function processa mensagens agendadas no Barramento de Serviço do Azure. Ele envia notificações por email via SendGrid e SMS por meio do Twilio ou dos Serviços de Comunicação do Azure. Após o envio, a função atualiza o registro de notificação com status, novas tentativas e qualquer informação de erro.
Monitoramento e observabilidade: o Application Insights e o Azure Monitor acompanham execuções de funções, integridade da fila, êxito de entrega e falhas. As filas de mensagens mortas no Barramento de Serviço capturam mensagens não entregues para análise posterior.
Components
Power Apps (aplicativo Canvas): o aplicativo de tela do Power Apps serve como a interface do usuário principal para gerenciar compromissos. Ele permite que os usuários criem, atualizem ou cancelem compromissos em uma interface intuitiva de baixo código. O aplicativo Canvas interage diretamente com o Dataverse para ler e gravar registros de compromissos e notificações. Ele também fornece feedback em tempo real para o usuário sobre a criação bem-sucedida, atualizações ou cancelamento de compromissos. A interface do usuário foi projetada para validar a entrada de dados, lidar com conflitos como compromissos sobrepostos e fornecer fusos horários localizados para notificações.
-
Tabela de compromisso: o Dataverse atua como o sistema de registro para todas as informações de compromisso. Cada entrada de compromisso inclui detalhes como o paciente ou o usuário, hora do compromisso, tipo de serviço e status. A tabela Compromisso foi projetada para disparar eventos em operações criar, atualizar ou excluir. O Agendador do Azure Function escuta esses eventos para calcular e agendar notificações. Dataverse fornece segurança interna por meio de controle de acesso por função, permissões de nível de campo e auditoria, garantindo que as informações confidenciais de agendamento só sejam acessíveis aos usuários certos. Além disso, sua integração com o Power Platform garante acesso de baixa latência e interação perfeita com outros componentes.
Tabela de Notificação: A Tabela de Notificação armazena metadados para cada notificação agendada, acompanhando o canal (SMS ou Email), a hora de entrega agendada, o status (Agendado, Enviado, Com Falha ou Cancelado), o número de tentativas e o número de sequência do Barramento de Serviço associado. O sistema fornece acompanhamento, relatório e tratamento de erros em tempo real para todas as notificações, mantendo esses dados no Dataverse. A tabela permite que os administradores auditem o histórico de entrega, monitorem tentativas com falha e tomem medidas corretivas, se necessário. Ele também dá suporte a atualizações automáticas disparadas por alterações de compromisso, garantindo que as notificações permaneçam precisas.
-
Agendador: a Função Agendador calcula os tempos de notificação com base nos detalhes do compromisso. Ele determina lembretes para uma semana, um dia e uma hora antes do compromisso e cria registros correspondentes no Dataverse. Ela também agenda mensagens no Barramento de Serviço do Azure, armazenando os números de sequência para possibilitar o cancelamento ou o reagendamento futuro. Essa função pode processar grandes volumes de compromissos sem perda de desempenho e garante a idempotência, de maneira que ela não agende notificações duplicadas. Seu design sem servidor permite que ele seja dimensionado automaticamente com base na carga de eventos e garante a eficiência operacional.
Entrega: a função Entrega processa mensagens do Barramento de Serviço do Azure quando chega a hora da entrega agendada. Ele determina o canal correto para cada notificação, como email via SendGrid ou SMS via Twilio/Serviços de Comunicação do Azure, e envia a mensagem adequadamente. Após a entrega, o registro de notificação no Dataverse é atualizado com dados de status e tentativa, caso ocorra uma falha. A função também implementa o tratamento de erros, o registro em log e os mecanismos de tentativa novamente, garantindo que ela forneça mensagens de forma confiável em caso de falhas transitórias ou limites de taxa impostos pelo provedor. O serviço é dimensionado automaticamente com o número de mensagens no Barramento de Serviço para processar picos no volume de notificações.
Barramento de Serviço do Azure: o Barramento de Serviço do Azure é o backbone do sistema de agendamento de notificação. Ele oferece enfileiramento durável, de alta taxa de transferência e de tempo específico, garantindo a entrega exata das mensagens quando necessário. Os números de sequência permitem cancelar ou reagendar mensagens se houver uma alteração de compromisso, mantendo a consistência. O Barramento de Serviço também dá suporte a filas de mensagens mortas para capturar mensagens que falharão na entrega depois de várias tentativas, dando aos administradores a possibilidade de investigar e corrigir erros. Sua capacidade de desacoplar o agendamento da entrega garante que o sistema permaneça responsivo e escalonável.
Provedores de email e SMS: os serviços de comunicação externos lidam com a entrega real de notificações. O SendGrid é usado para enviar notificações por email, fornecendo mecanismos robustos de acompanhamento, análise e repetição. Os Serviços de Comunicação do Twilio e do Azure fornecem notificações por SMS, dando suporte a mensagens de alto volume com confiabilidade. A Função de Entrega interage com esses provedores usando chaves de API seguras armazenadas no Azure Key Vault e implementa estratégias de repetição para lidar com erros transitórios ou problemas de limitação de taxa. Ao terceirizar a entrega para provedores especializados, o sistema garante alta confiabilidade e reduz a sobrecarga operacional.
Azure Key Vault: você pode armazenar com segurança todas as credenciais confidenciais e chaves de API no Azure Key Vault. O Azure Functions acessa segredos por meio de identidades gerenciadas, que eliminam a necessidade de armazenar dados confidenciais em arquivos de código ou configuração. O Key Vault garante que ele criptografa credenciais em repouso, audita o acesso e aplica políticas de rotação automaticamente para manter a conformidade de segurança.
Ferramentas de monitoramento e observabilidade: o sistema usa o Application Insights e o Azure Monitor para fornecer visibilidade total sobre a integridade e o desempenho da solução. O Application Insights controla execuções de função, comprimentos de fila, status de entrega e falhas, enquanto o Azure Monitor fornece alertas para comportamento anormal, pendências de mensagens ou falhas de serviço. Você pode usar logs e telemetria para solução de problemas, análise operacional e planejamento de capacidade, garantindo que os administradores tenham as informações necessárias para manter a alta confiabilidade operacional e o desempenho.
Detalhes do cenário
Essa solução foi projetada para organizações que precisam enviar lembretes oportunos para compromissos agendados, como clínicas de saúde, centros de vacinação ou empresas baseadas em serviços. Os usuários interagem por meio do Power Apps para inserir detalhes do compromisso, que são armazenados no Dataverse e processados imediatamente para agendar notificações. O sistema calcula automaticamente os tempos de lembrete, como uma semana, um dia e uma hora antes do compromisso, e garante que ele forneça esses lembretes por meio do canal apropriado.
O sistema pode lidar com milhares de notificações diárias sem degradação de desempenho, habilitadas pela separação entre gerenciamento de compromissos, agendamento e entrega de mensagens. Ele garante que os lembretes continuem sendo precisos mesmo quando os compromissos mudam ou são cancelados reagendando ou removendo dinamicamente mensagens do Barramento de Serviço. Cada etapa do processo é registrada e controlada. Essa abordagem garante que os administradores e a equipe de suporte tenham visibilidade do comportamento do sistema e do status de cada notificação enviada.
Considerações
Essas considerações implementam os pilares do Power Platform Well-Architected, um conjunto de princípios orientadores que melhoram a qualidade de uma carga de trabalho. Saiba mais em Microsoft Power Platform Well-Architected.
Segurança
O sistema integra a segurança em toda parte usando a ID do Microsoft Entra para funções de identidade e Dataverse para restringir o acesso a compromissos e notificações. Os usuários do Power Apps se autenticam usando a ID do Microsoft Entra, garantindo que todas as interações com o Dataverse sejam autorizadas e registradas. O Azure Functions usa identidades gerenciadas para interagir com segurança com Dataverse, Barramento de Serviço e Key Vault sem armazenar credenciais em arquivos de código ou configuração.
Armazene credenciais confidenciais, como chaves SendGrid e Twilio, somente no Azure Key Vault e acesse-as por meio de identidades gerenciadas. Você pode proteger ainda mais a comunicação entre os serviços do Azure usando pontos de extremidade privados e redes virtuais, reduzindo a exposição à Internet pública. Todas as trocas de mensagens entre os componentes do sistema aderem aos padrões de comunicação criptografados para proteger dados em repouso e em trânsito.
Excelência operacional
Você obtém a excelência operacional por meio de monitoramento contínuo, observabilidade e alertas automatizados. O Application Insights coleta telemetria detalhada do Azure Functions, incluindo tempos de execução, falhas, novas tentativas e métricas de desempenho. O Azure Monitor monitora a saúde das filas do Azure Service Bus, identificando possíveis gargalos ou pendências. As filas de mensagens mortas oferecem um mecanismo de captura e solução de problemas que deixará de ser processado depois de várias tentativas.
Os administradores podem configurar alertas para notificá-los de falhas relacionadas ao processamento de mensagens, interrupções de provedor ou crescimento anormal da fila. O Dataverse mantém uma trilha de auditoria dentro da tabela Notificação, permitindo que os administradores acompanhem o ciclo de vida de cada notificação. Como o Azure Functions é sem estado e é dimensionado automaticamente, o sistema pode responder a aumentos repentinos no volume de mensagens sem intervenção manual, garantindo um desempenho e tempo de atividade consistentes.
Eficiência de desempenho
A arquitetura é otimizada para alto desempenho e escalabilidade. O Azure Service Bus permite a manipulação eficiente de notificações agendadas sem a sobrecarga introduzida pelos atrasos baseados no Power Automate. A separação de agendamento e entrega em funções separadas permite que cada componente seja dimensionado independentemente com base na demanda. A Função de Entrega se beneficia do dimensionamento automático, permitindo processar picos em mensagens de saída sem afetar sistemas voltados para o usuário.
Além disso, o uso de identidades gerenciadas e estratégias de cache para autenticação de provedor reduz a latência durante a entrega de mensagens. O sistema minimiza a sobrecarga de armazenamento desnecessária mantendo apenas metadados essenciais no Dataverse e dando suporte a estratégias de arquivamento para notificações mais antigas. Combinando recursos do Power Platform com a infraestrutura de mensagens escalonável do Azure, o sistema garante entrega de notificação rápida, eficiente e econômica em escala empresarial.
Contributor
A Microsoft mantém este artigo. Os colaboradores a seguir escreveram este artigo.
Autores principais:
- Summit Bajracharya, Arquiteto de Soluções