Latest / M365.FM – Podcast de Microsoft 365, Copilot e IA em português / Notificações de alteração do Microsoft Graph explicadas: tempo real em vez de polling (Dublagem IA)
Transcript
- 0:00Preparado para 10 dias de Microsoft 305 Copilot IA,
- 0:04Azure e as pessoas que estão moldando o futuro do trabalho,
- 0:06em janeiro, a M365 com está de volta e vamos trazer algo ainda maior.
- 0:12Junte-se a nós em sessões ao vivo, demonstrações do mundo real
- 0:15e conhecimento prático de MVPs e especialistas do setor em todo o mundo.
- 0:18Nada de slides genéricos ou palavras da moda sem fim.
- 0:22Estamos abordando desafios reais.
- 0:23Copilot Studio, agente de IA, fábrica, segurança, governança e automação.
- 0:28Seja você um profissional de TI, desenvolvedor ou líder de negócios,
- 0:33há sessões criadas para você.
- 0:35Com 10 dias inteiros, você pode explorar várias tecnologias
- 0:38e se conectar com uma comunidade global.
- 0:40Assista ao vivo e leve insights práticos de volta para a sua organização.
- 0:45Janeiro de 2027, 10 dias, uma comunidade Microsoft.
- 0:49As inscrições já estão abertas.
- 0:51Acesse m365com.net e garanta sua vaga hoje mesmo.
- 0:55Isso mesmo, m365com.net.
- 1:01Inscreva-se agora em m365com.net.
- 1:05Tópico de hoje.
- 1:06É algo que quase todo mundo que desenvolve com o Microsoft 365 já ouviu falar.
- 1:09Mas a maioria das pessoas não entende como funcionam os bastidores.
- 1:12Estou falando das notificações de alteração do Microsoft Graph.
- 1:16Exatamente elas são e por que você deveria se importar.
- 1:18Vamos começar pelo problema aquelas vezes.
- 1:20Imagine que você cria um aplicativo que precisa saber quando algo muda no Microsoft 365.
- 1:23Talvez um novo e-mail chegue e alguém atualize um arquivo no SharePoint ou um novo usuário
- 1:27seja adicionado ao diretório da sua empresa.
- 1:29Como seu aplicativo desconto?
- 1:30O ponto é, a maneira antiga é o polo em sondagem.
- 1:33Seu aplicativo envia uma solicitação ao Microsoft Graph a cada poucos minutos perguntando.
- 1:36Há algo novo desde a última verificação?
- 1:38Se nada mudou, você desperdiçou uma solicitação.
- 1:40E se algo mudou 5 segundos após sua verificação, você só saberá no próximo ciclo.
- 1:45Você está verificando com muita frequência, desperdiçando recursos e arriscando throttling
- 1:48ou raramente demais, perdendo eventos?
- 1:49Microsoft, na verdade, limita aplicativos que fazem sondagens agressivas de manhã.
- 1:54Desenvolvedores chamam isso de prisão do Graph, onde seu app é bloqueado por um tempo
- 1:56por excesso de solicitações.
- 1:59Então a pergunta é, não existe um jeito melhor?
- 2:01Em vez de seu app perguntar constantemente se há algo novo, o sistema apenas avisasse
- 2:04quando algo mudasse?
- 2:06É exatamente isso que as notificações de alteração fazem.
- 2:09O que são as notificações de alteração do Microsoft Graph?
- 2:11Aqui está a definição mais simples.
- 2:13As notificações de alteração permitem que seu aplicativo reaja instantaneamente a eventos
- 2:16do Microsoft 365 sem verificações constantes.
- 2:19Pense nelas como um sensor de movimento na sua caixa de corre.
- 2:22Em vez de passar por ela a cada hora para olhar dentro, você instala um sensor que te avisa
- 2:25no momento em que a correspondência chega.
- 2:27Você para de perder tempo com verificações vazias e nunca perde uma entrega.
- 2:30É isso que as notificações de alteração fazem pelo seu aplicativo.
- 2:32Quando algo muda, como um novo e-mail, um arquivo atualizado ou um evento de calendário,
- 2:36o Microsoft Graph envia uma notificação para seu aplicativo automaticamente.
- 2:39Não é necessário fazer pouco.
- 2:41Bem, este sistema tem duas partes, uma assinatura e uma notificação, e elas trabalham juntas.
- 2:45A assinatura é onde você diz ao Microsoft Graph o que deseja o monitor.
- 2:49Você diz coisas como, ei, avise-me quando alguém enviar uma nova mensagem para esta
- 2:52caixa de entrada.
- 2:53Ou, avise-me quando um arquivo for atualizado nesta biblioteca do SharePoint.
- 2:56Você registra seu interesse e o Graph tomando.
- 2:58A notificação é o que acontece em seguida.
- 3:00Quando a alteração ocorre, o Graph envia um HTTP post para um endpoint fornecido por
- 3:03você.
- 3:04Seu aplicativo recebe esse post e sabe que algo aconteceu, e pode então decidir o que fazer,
- 3:08como buscar novos dados, acionar um fluxo de trabalho ou atualizar um banco de dados.
- 3:12Aqui está a principal diferença, irmão.
- 3:15As notificações são entregues automaticamente.
- 3:17Seu aplicativo não precisa solicitar, o sistema envia informação no momento em que
- 3:20ela ocorre.
- 3:20Essa é a mágica disso.
- 3:22O Microsoft Graph oferece suporte a notificações de alteração para uma ampla gama de recursos.
- 3:26Mensagens, eventos, contatos, usuários, grupos, arquivos, mensagens do Teams, alertas
- 3:30de segurança.
- 3:30Praticamente tudo que você pode acessar pelo Graph pode ser monitorado quanto a alterações.
- 3:34Mas como você realmente configura isso?
- 3:35Como você diz ao Graph monitorar e para onde enviar os alertas?
- 3:38Criando uma assinatura.
- 3:39Dizendo ao Graph o que monitorar.
- 3:41Então o que é uma assinatura?
- 3:41É apenas uma solicitação de registro.
- 3:43Seu aplicativo desavise-me quando isso acontecer.
- 3:46E você envia essa solicitação para a API do Microsoft Graph.
- 3:48O Graph armazena agora.
- 3:50Você precisa fornecer ao Graph alguns detalhes nessa solicitação.
- 3:52Primeiro, o recurso deseja monitorar.
- 3:54O caminho para os dados.
- 3:55Por exemplo, em User, se você estiver monitorando alterações em contas de usuário.
- 3:58Ou Me, Mail, Folders, Inbox, Messages.
- 4:01Se você quiser saber sobre novos e-mails.
- 4:03Em seguida, o tipo de alteração.
- 4:05Você quer saber quando algo é criado, atualizado ou excluído.
- 4:08Você pode escolher um ou solicitar todos os três.
- 4:10Terceiro, o URL de notificação.
- 4:11Este é o endereço do seu endpoint.
- 4:13O local para onde o Graph deve enviar a notificação quando algo acontecer.
- 4:15Ele deve ser um endpoint HTTPS acessível publicamente.
- 4:18Não há atalhos aqui.
- 4:19Quarto, a data de expiração.
- 4:21As assinaturas não duram para sempre.
- 4:22Você escolhe uma data e hora futuras para a expiração da assinatura.
- 4:25Mas diferentes recursos têm tempos máximos de vida diferentes.
- 4:28As mensagens da Outlook podem durar até 7 dias.
- 4:30As mensagens de chat do Teams têm um limite máximo de 13.
- 4:32Arquivos do SharePoint podem durar cerca de 30 dias.
- 4:35Informações de presença?
- 4:36Isso expira após apenas uma hora.
- 4:37Isto é um exemplo concreto.
- 4:39Digamos que você queira saber quando alguém na sua empresa muda de cargo.
- 4:42Você cria uma assinatura para o recurso de usuários com um tipo de alteração de atualização.
- 4:46Você aponta para a sua URL de notificação e define a inspiração para alguns dias à frente.
- 4:50Quando alguém atualiza seu perfil no Azure AD, o Graph envia um post para seu endpoint com uma carga de notificação.
- 4:55Essa carga inclui o ID do usuário e informa o que foi alterado.
- 4:58Seu aplicativo pode então agir.
- 5:00Atualizar um sistema de RH, disparar um aviso ao gerente, o que precisar.
- 5:03O Graph responde a sua solicitação de assinatura com o ID de assinatura.
- 5:07Você precisará decidir mais tarde para gerenciar, renovar, atualizar ou excluir a assinatura.
- 5:11Não é que estou a dedo.
- 5:12Antes do Graph começar a enviar notificações, ele precisa confirmar se seu endpoint está ativo e ouvindo.
- 5:17Isso requer um handshake.
- 5:19Token de validação do handshake explicado.
- 5:21Ao criar uma assinatura, o Microsoft Graph não confia cegamente no seu endpoint.
- 5:26Ele envia um ping de teste primeiro, uma solicitação de verificação.
- 5:29Esse ping inclui um token de validação, uma string aleatória de caracteres.
- 5:32Seu endpoint deve capturar esse token e enviá-lo de volta como texto simples em 10 segundos.
- 5:37Pense nisso com um entregador tocando sua campainha para confirmar se você está em casa antes de deixar um pacote.
- 5:41Se ninguém atendeu, o entregador não deixa nada.
- 5:43Vale aqui.
- 5:44Se seu endpoint não retornar o token de validação, o Graph não enviará notificações a ele.
- 5:48A resposta deve ser texto simples, não JSON ou XML, apenas a string bruta do token.
- 5:54Se errar o formato, o handshake falha.
- 5:56É uma verificação de segurança.
- 5:57Isso prova que seu endpoint está ativo, ouvindo e sob seu controle.
- 6:01Impede que alguém aponte uma assinatura para uma URL que não possui na esperança de interceptar notificações destinadas a outra pessoa.
- 6:07Sem handshake não há assinatura.
- 6:08O Graph rejeita a solicitação de criação e você recebe um erro.
- 6:11Você corrige seu endpoint e tenta não ver.
- 6:13Assim que o handshake é bem sucedido, a assinatura fica ativa e as notificações começam a fluir.
- 6:17Mas aqui está o detalhe.
- 6:18Elas não fluem para cima.
- 6:20Mantendo a conexão ativa.
- 6:22Renovação de assinatura.
- 6:23Toda assinatura tem uma data de expiração.
- 6:25Você a define quando a cria.
- 6:27O Graph impõe.
- 6:28Quando esse dia chega, a assinatura para.
- 6:30Sem mais notificações.
- 6:32Pense nisso com um parquímetro.
- 6:34Você insere o tempo e quando ele acaba, o medidor expira.
- 6:37Recursos diferentes têm limites diferentes.
- 6:39Mensagens do Outlook podem durar sete dias.
- 6:42Chats do Teams, três dias.
- 6:43Arquivos do SharePoint, cerca de trinta dias.
- 6:45Informações de presença, apenas uma hora.
- 6:47Portanto, seu aplicativo não pode simplesmente criar uma assinatura e esquecê-la.
- 6:50Você precisa de um processo que a mantenha ativa.
- 6:52Renovar é sim.
- 6:53Envie uma solicitação pateada com a rede da assinatura.
- 6:56Inclua uma nova data de expiração.
- 6:57Faça isso antes que a atual expire e o Graph estenderá a assinatura.
- 7:01Aqui está a melhor prática, recomendo.
- 7:03Verifique o carimbo de data barra hora e expiração em cada notificação que você receba.
- 7:06Se estiver perto de expirar, digamos, dentro de um dia, renove imediatamente.
- 7:09Você não precisa de um trabalho em segundo plano separado apenas para gerenciar a assinatura.
- 7:13A Microsoft também adicionou notificações de ciclo de vida.
- 7:15Esses alertas avisam você antes que uma assinatura expire.
- 7:18Eles informam quando sua assinatura está prestes a terminar ou quando seu token de acesso precisa de reautorização.
- 7:22Assine esses avisos e seu aplicativo poderá renovar antes que algo pare de funcionar.
- 7:25Mas e se seu endpoint ficar fora do ar ou você perder a janela de renovação?
- 7:28É aí que entra a rede de segurança.
- 7:31Quando as coisas dão errado, confiabilidade e rede de segurança.
- 7:34Sua assinatura está ativa, seu endpoint está escutando, as notificações estão fluindo.
- 7:37Tudo parece bom, mas o que acontece quando algo falha?
- 7:40Talvez seu endpoint saia do ar para manutenção.
- 7:42Um problema de rede derruba uma notificação.
- 7:44Ou você simplesmente perca a janela de renovação e a assinatura expire.
- 7:47Essa coisa conta.
- 7:47A questão é como você se recupera.
- 7:49O Microsoft Graph espera que seu endpoint de Webhook responda rapidamente, dentro de 3 segundos.
- 7:53Se demorar mais, o Graph o marcará como lento.
- 7:55Se mais de 10% das suas respostas excederem 3 segundos em qualquer período de 10 minutos,
- 7:59o Graph atrasa suas notificações em 10 minutos.
- 8:01Ele envia apenas uma pequena amostra para verificar se você se recuperou.
- 8:04Pior ainda mais.
- 8:05Se mais de 15% das suas respostas excederem o tempo limite de nova tentativa de 10 segundos,
- 8:08o Graph marca seu endpoint como descartado.
- 8:10As notificações param completamente por 10 minutos.
- 8:12Assumido.
- 8:12Você não pode recuperá-lo.
- 8:14Portanto, seu endpoint precisa ser rápido e confiável.
- 8:16Isso não significa que você precise processar cada notificação em menos de 3 segundos.
- 8:19Apenas confirme o recebimento rapidamente com a resposta 202 Accepted.
- 8:23Então, processe a notificação assincronamente.
- 8:25Coloque na fila.
- 8:26Trata e posto.
- 8:26O segredo é essa resposta rápida.
- 8:28Mesmo com um endpoint perfeito, as coisas ainda podem dar errado.
- 8:30As assinaturas expiram.
- 8:32Falhas de rede acontecem.
- 8:33O próprio Microsoft Graph pode perder uma notificação em casos raros.
- 8:36Por isso que você precisa de uma rede de segurança.
- 8:38Consultas Delta.
- 8:39Pense desta maneira.
- 8:40As notificações de alteração são um alarme de incêndio.
- 8:42Elas dizem que algo está acontecendo agora.
- 8:43As consultas Delta são um sistema de spray.
- 8:45Elas pegam tudo o que o alarme deixou passar.
- 8:47Elas funcionam junto.
- 8:47As notificações oferecem consciência em tempo.
- 8:49As consultas Delta oferecem uma visão completa que você pode reconciliar com uma.
- 8:53O padrão recomendado é simples.
- 8:55Use notificações de alteração para obter reconhecimento em seu sistema.
- 8:57Execute uma consulta Delta periodicamente, talvez a cada poucas horas ou uma vez por dia,
- 9:00para capturar qualquer coisa que tenha passado a se perceber.
- 9:02Dessa forma, mesmo que uma notificação tenha sido perdida, uma assinatura tenha inspirado,
- 9:05você nunca perde uma alteração permanentemente.
- 9:07Caso de uso no mundo real.
- 9:09O que você pode construir.
- 9:10Então, o que isso realmente possibilita?
- 9:12Deixe-me guiá-lo por alguns exemplos reais.
- 9:13Veja a automação de RH.
- 9:14Imagine que alguém entre na sua empresa amanhã.
- 9:17No momento em que o Entrede cria um novo usuário, uma notificação de alteração é disparada.
- 9:21Seu aplicativo captura o perfil dele e cria contas na sua plataforma de RH.
- 9:24Controle de ponto e acesso ao prédio, tudo em segundos.
- 9:26Sem polo e sem atrasos.
- 9:28Para alertas de segurança, digamos que a conta de um usuário seja desativada.
- 9:31Uma notificação de alteração aciona um fluxo de trabalho que verifica alterações suspeitas
- 9:34e alerta sua equipe de segurança.
- 9:36Antes, eu faria polo em cada poucos minutos.
- 9:38Agora é instantâneo.
- 9:39O processamento de conteúdo funciona da mesma maneira.
- 9:41Quando um arquivo chega a uma biblioteca de documentos de SharePoint,
- 9:43você quer saber se é uma fatura.
- 9:45A notificação informa que um novo arquivo existe.
- 9:47Seu aplicativo captura passa por um IA para classificá-lo e envia para o sistema de despesas
- 9:50correto.
- 9:51Tudo automaticamente.
- 9:53Dashboards em tempo real permitem que você veja a análise conforme ela acontece e não
- 9:55com horas de atraso.
- 9:56As notificações de alteração sincronizam o Dataverse com o Fabric instantaneamente.
- 9:59Seus dashboards do Power BI são atualizados quase em tempo real.
- 10:02E que está um que acha interessante?
- 10:04Conectores do Copac.
- 10:05A Microsoft adiciona a sincronização em tempo real via webhooks para que os agentes de IA respondam
- 10:09no segundo link que os dados mandam.
- 10:09Quando um registro de cliente é atualizado no Dynamics 365, um agente do Copilot gera
- 10:14um acompanhamento imediatamente, sem esperar.
- 10:17Todos esses exemplos têm uma coisa em conta.
- 10:20Antes das notificações de alteração, você criava tarefas agendadas que faziam polling
- 10:23a cada hora do dia.
- 10:24Funcionava, mas era lento, ineficiente e frágil.
- 10:27As notificações de alteração invertem-se.
- 10:29Tempo real, orientado a eventos, instantâneo.
- 10:32Escolhendo o canal de entrega correto.
- 10:34Nem todo aplicativo precisa da mesma entrega.
- 10:36Vamos analisar suas opções.
- 10:37Webhooks são os mais simples.
- 10:39O Graph envia um HTTP post para seu endpoint e você processa e segue em frente.
- 10:43Para volumes baixos a médios, digamos algumas centenas de notificações por hora, isso
- 10:46funciona bem.
- 10:46Mas e se você estiver construindo alguma algo?
- 10:48Milhares de notificações por segundo podem sobrecarregar num único endpoint.
- 10:52Você precisa de algo mais poderoso.
- 10:53Event Hubs lida com milhões de eventos por segundo.
- 10:56Em vez de o Graph enviar notificações uma a uma, ele as envia para um hub.
- 10:59Seu aplicativo lê no seu próprio ritmo, com baixo risco de sobrecarga.
- 11:02Isso é para cenários de grandes empresas, como milhares de sites do SharePoint ou milhões
- 11:05de caixas de correio.
- 11:07E há o Event Grid opção sem servidor server.
- 11:08Ele envia notificações para o Azure Functions ou Logic Apps e lida automaticamente com novas
- 11:12tentativas e mensagens mortas.