Latest / M365.FM – Podcast su Microsoft 365, Copilot e IA in italiano / Notifiche di modifica di Microsoft Graph spiegate: tempo reale invece del polling (Doppiaggio IA)
Transcript
- 0:00Pronto per 10 giorni di Microsoft 365, Copilot, EA Azure e le persone che stanno plasmando il futuro del lavoro?
- 0:07Questo gennaio, M365 contorna e sarà ancora più grande.
- 0:12Unisciti a noi per sessioni dal vivo, demo concrete e conoscenze pratiche da MVP ed esperti del settore in tutto il mondo.
- 0:18Niente slide generiche, niente gergo infinito.
- 0:22Affrontiamo le sfide reali.
- 0:23Copilot Studio, agenti IA, Fabric, sicurezza, governance e automazione.
- 0:28Che tu sia un professionista IT, uno sviluppatore o un leader aziendale, ci sono sessioni pensate per te.
- 0:35Con 10 giorni interi puoi esplorare diverse tecnologie e connetterti con una community globale.
- 0:40Guarda in diretta e porta intuizioni pratiche nella tua organizzazione.
- 0:45Gennaio 2027, 10 giorni, un'unica community Microsoft.
- 0:49Le registrazioni sono aperte.
- 0:51Vai su m365con.net e assicurati il tuo posto oggi stesso.
- 0:55Il sito è m365con.net
- 0:58Iscriviti ora su m365con.net e ci vediamo.
- 1:03In diretta a gennaio.
- 1:05L'argomento di oggi è qualcosa di cui quasi tutti coloro che sviluppano con Microsoft 365 hanno sentito parlare.
- 1:09Ma la maggior parte delle persone non capisce davvero come funzioni dietro le quinte.
- 1:13Sto parlando delle notifiche di modifica di Microsoft Graph.
- 1:16Cosa sono esattamente perché dovrebbero interessarti?
- 1:18Partiamo dal problema che risolve.
- 1:20Immagine di creare un'app che deve sapere quando qualcosa cambia a Microsoft 365.
- 1:23Magari arriva una nuova email, qualcuno aggiorna un file in SharePoint, un nuovo utente, viene aggiunto alla directory aziendale.
- 1:29Come fa la tua app a scoprirlo?
- 1:30Punto è che il vecchio metodo è il polling.
- 1:33La tua app invia una richiesta a Microsoft Graph ogni pochi minuti chiedendo
- 1:35C'è qualcosa di nuovo dall'ultimo controllo?
- 1:38Se non è cambiato nulla è sprecato una richiesta.
- 1:40Se qualcosa fosse cambiato 5 secondi dopo il tuo controllo non lo sapresti fino al ciclo successivo.
- 1:44O controlli troppo spesso sprecando risorse e rischiando limitazioni o troppo raramente perdendo informazioni.
- 1:50Microsoft limita le app che effettuano il polling in modo troppo aggressivo.
- 1:53Gli sviluppatori la chiamano GraphJail e la tua app viene bloccata per un po' perché fa troppe richieste.
- 1:58Quindi la domanda è, non esiste un modo migliore?
- 2:01E se invece che continuare a chiedere se c'è qualcosa di nuovo il sistema ti avvisasse, quando qualcosa cambia?
- 2:06È esattamente quello che fanno le notifiche di modifica.
- 2:09Cosa sono le notifiche di modifica di Microsoft Graph?
- 2:11Ecco la definizione più semplice.
- 2:13Le notifiche di modifica consentono alla tua app di reagire istantaneamente agli eventi in Microsoft 365 senza controlli costanti.
- 2:19Pensalo come un sensore di movimento sulla tua cassetta.
- 2:21Invece di passarci davanti ogni ora per sbirciare dentro, installi un sensore che ti avvisa nel momento in cui arriva la posta.
- 2:27Smetti di perdere tempo con controlli a vuoto e non perdi mai una consiglia.
- 2:30È questo che fanno le notifiche di modifica per la tua app.
- 2:31Quando qualcosa cambia, come una nuova email, un file aggiornato, un evento del calendario, Microsoft Graph invia automaticamente una notifica alla tua app.
- 2:39Nessun polling richiesto.
- 2:41Ora questo sistema è composto da due elementi.
- 2:43Una sottoscrizione a notifica, che lavorano insieme.
- 2:46La sottoscrizione è il modo in cui dici a Microsoft Graph cosa vuoi monitorare.
- 2:48Dici cose come, ehi, avvisami quando qualcuno invia un nuovo messaggio a questa posta in arrivo.
- 2:53Oppure, dimmi quando un file viene aggiornato in questa libreria SharePoint.
- 2:56Registri il tuo interesse e Graph ne prende notte.
- 2:58La notifica è ciò che accade dopo.
- 3:00Quando si verifica il cambiamento, Graph invia un HTTP post a un endpoint fornito da te.
- 3:04La tua app riceve quel post, sa che è successo qualcosa e può decidere cosa fare, come recuperare i nuovi dati, avviare un flusso di lavoro o aggiornare un database.
- 3:12Ecco la differenza fondamentale rispetto a loro.
- 3:15Le notifiche vengono consegnate automaticamente.
- 3:17La tua app non deve chiedere nulla, il sistema invia le informazioni nel momento stesso in cui accadono.
- 3:20E questa è la magia.
- 3:22Microsoft Graph supporta le notifiche di modifica per una vasta gamma di risorse.
- 3:26Messaggi, eventi, contatti, utenti, gruppi, file, messaggi di Teams, avvisi di sicurezza.
- 3:30Praticamente tutto ciò a cui puoi accedere tramite Graph può essere monitorato per le modifiche.
- 3:34Ma come si configura tutto questo?
- 3:35Come dice a Graph cosa monitorare e dove inviare gli avvisi?
- 3:38Creando una sottoscrizione, dicendo a Graph cosa controllare.
- 3:40Questa è una sottoscrizione.
- 3:42È semplicemente una richiesta di registrazione.
- 3:43La tua app dice avvisami quando succede questa cosa e invita le richieste all'app di Microsoft Graph.
- 3:48Graph la memorizza e attende.
- 3:50Devi fornire a Graph alcuni dettagli in quella richiesta.
- 3:52Primo, la risorsa che vuoi monitorare.
- 3:54Il percorso verso i dati.
- 3:55Ad esempio, user, se stai monitorando le modifiche agli account utente.
- 3:58Oppure, mail, splash, email, folder, splash, messages, se vuoi sapere quando arrivano nuove email.
- 4:03Successivamente, il tipo di modifiche.
- 4:05Vuoi sapere quando qualcosa viene creato, aggiornato o eliminato.
- 4:08Puoi sceglierne uno, richiederle tutte e tre.
- 4:10Terzo, l'url della notifica.
- 4:11Questo è l'indirizzo del tuo endpoint, il luogo in cui Graph deve inviare la notifica quando accade qualcosa.
- 4:15Deve essere un endpoint HTTPS accessibile pubblicamente.
- 4:18Non sono messi scocciatore.
- 4:19Quarto, la data di scadenza.
- 4:21Le sottoscrizioni non durano per sempre.
- 4:23Scegli una data e un orario futuro in cui la sottoscrizione scadrà.
- 4:25Tuttavia, risorse diverse hanno durate massime differenti.
- 4:28I messaggi di Outlook possono durare fino a sette giorni.
- 4:30I messaggi di chat di Teams durano al massimo tre giorni.
- 4:32I file di SharePoint possono durare circa 30 giorni.
- 4:35Informazioni sulle presenze.
- 4:36Scadono dopo appena un'ora?
- 4:38Ecco un esempio concreto.
- 4:39Diciamo che vuoi sapere quando qualcuno in azienda cambia il proprio titolo di lavoro.
- 4:42Crea una sottoscrizione per la risorsa utente con un tipo di modifica aggiornato.
- 4:45Indirizzi l'URL di notifica e imposti la scadenza qualche giorno dopo.
- 4:50Quando qualcuno aggiorna il proprio profilo in Azure ID,
- 4:52Graph invia un post al tuo endpoint con un payload di notifica.
- 4:55Quel payload include l'ID utente e ti comunica cosa è cambiato.
- 4:58La tua app può quindi agire, aggiornare un sistema a carrile e inviare una notifica al manager, quello che ti serve.
- 5:03Graph risponde alla tua richiesta di sottoscrizione con un ID sottoscrizione.
- 5:06Ti serviva quell'ID in seguito per gestire la sottoscrizione, rinnovarla, aggiornarla, aggiornarla.
- 5:11Ma c'è una cosa.
- 5:12Prima che Graph inizi a inviare notifiche,
- 5:13deve confermare che il tuo endpoint sia effettivamente attivo e in ascolto.
- 5:17Ciò richiede un handshake.
- 5:19Il token di convalida dell'handshake spiegato?
- 5:22Quando crea una sottoscrizione,
- 5:23Microsoft Graph non si fida ciecamente del tuo endpoint.
- 5:26Gli apriamo un ping di prova, una richiesta di verifica.
- 5:29Quel ping include un token di convalida, una stringa casuale di caratteri.
- 5:32Il tuo endpoint deve catturare quel token e rispedirlo come testo semplice entro 10 secondi.
- 5:37Immaginalo come un corriere che suona il campanello per confermare che sei in casa prima di lasciare un pacco.
- 5:41Se nessuno risponde, il corriere non lascia nulla.
- 5:43Lo stesso vorrei qui.
- 5:44Se il tuo endpoint non rimanda indietro il token di convalida,
- 5:47Graph non invierà notifiche.
- 5:49La risposta deve essere testo semplice, non JSON o XML, solo la stringa grezza del token.
- 5:54Se sbagli il formato, l'handshake fallisce.
- 5:56È un controllo di sicurezza.
- 5:57Dimostra che il tuo endpoint è attivo, in ascolto e sotto il tuo controllo.
- 6:01Impedisce a qualcuno di puntare una sottoscrizione a un URL che non possiede,
- 6:04sperando di intercettare notifiche destinate ad altri.
- 6:06Niente handshake significa niente sottoscrizione.
- 6:08Graph rifiuta la richiesta di creazione e riceve un errore.
- 6:11Correggi il tuo endpoint e riprovi.
- 6:12Una volta è riuscito l'handshake, la sottoscrizione è attiva e le notifiche iniziano ad arrivare.
- 6:17Ma c'è una cosa.
- 6:18Non arrivano per sempre.
- 6:20Mantieni la connessione attiva.
- 6:22Rinnovo della sottoscrizione.
- 6:23Ogni sottoscrizione ha una data di scadenza.
- 6:25La imposti quando la crei.
- 6:27Graph la fa rispettare.
- 6:28Quando arriva quel giorno, la sottoscrizione si ferma.
- 6:30Niente più notifiche.
- 6:32Immagino come un parchimetro.
- 6:34Imposti il tempo quando scade il contatore e segnala la scadenza.
- 6:37Risorse diverse hanno limiti diversi.
- 6:39I messaggi Outlook possono durare 7 giorni.
- 6:41I messaggi chat di Teams 3 giorni.
- 6:43I file SharePoint circa 30 giorni.
- 6:45Le informazioni sulla presenza.
- 6:46Solo un'ora.
- 6:48Quindi la tua app non può semplicemente creare una sottoscrizione dimenticata.
- 6:50Hai bisogno di un processo che la mantenga a T.
- 6:52Il rinnovo è semplice.
- 6:53Invia una richiesta patch con l'ID della sottoscrizione.
- 6:56Includi una nuova data di scadenza.
- 6:57Fallo prima che quella attuale scada e graph estenderà la sottoscrizione.
- 7:01Ecco la best practice che consiglio.
- 7:03Controlla il timestamp di scadenza su ogni notifica che ricevi.
- 7:05Se avvicina la scadenza, diciamo entro un giorno, rinnovala subito.
- 7:09In questo modo non ti serve un lavoro in background separato per gestire le sottoscrizioni.
- 7:13Microsoft ha aggiunto anche notifiche sul ciclo di vita.
- 7:15Questi avvisi ti preavvisano prima che una sottoscrizione scada.
- 7:18Ti indicano quando la sottoscrizione sta per terminare o quando il token di accesso richiede una riautorizzazione?
- 7:22Iscriviti a queste e la tua app potrà rinnovare prima che qualcosa si rompa.
- 7:26Ma cosa succede se il tuo endpoint va giù?
- 7:27Perdi la finestra di no.
- 7:28È qui che entri in gioco la rete di sicurezza.
- 7:31Quando le cose vanno male, servono affidabilità ai reti di sicurezza.
- 7:34La tua sottoscrizione è attiva, l'endpoint è in ascolto, le notifiche fluiscono.
- 7:37Tutto sembra a posto, ma cosa succede quando qualcosa si rompa?
- 7:40Magari l'endpoint va giù per manutenzione.
- 7:42Un problema di rete fa perdere una notifica.
- 7:44O semplicemente perdi la finestra di rinnovo e la sottoscrizione scada.
- 7:46Queste cose succedono.
- 7:47La domanda è come recuperi.
- 7:49Microsoft Graph si aspetta che il tuo endpoint webbook risponda rapidamente, entro tre secondi.
- 7:53Se impiega più tempo, Graph lo segna come l'è.
- 7:55Se oltre il 10% delle tue risposte supera i 3 secondi in un periodo di 10 minuti, Graph ritarda le notifiche di 10 minuti.
- 8:01Invia solo un piccolo campione per verificare se ti sia ripreso.
- 8:04Va peggio.
- 8:05Se oltre il 15% delle tue risposte supera il timeout di riprova di 10 secondi, Graph segna il tuo endpoint come abbandonato.
- 8:10Le notifiche si fermano del tutto per 10 minuti.
- 8:12Non persi.
- 8:12Non puoi recuperarle.
- 8:14Quindi il tuo endpoint deve essere veloce e affidabile.
- 8:16Ciò non significa dover elaborare ogni notifica in meno di 3 secondi.
- 8:19Basta confermare l'eccezione rapidamente con una risposta 202 accepted, poi elabora la notifica in modo sincrono.
- 8:25Mettila in conno.
- 8:25Gestiscila in seguo.
- 8:26La chiave è quella risposta veloce.
- 8:28Anche con un endpoint perfetto le cose possono ancora andare storte.
- 8:30Le sottoscrizioni scadono.
- 8:32Capitano problemi di rete.
- 8:33In rari casi lo stesso Microsoft Graph potrebbe perdere una notifica.
- 8:36Ecco perché serve una rete di sicurezza, le Delta Query.
- 8:39Pensala in questo modo.
- 8:40Le notifiche di modifica sono l'allarme antincente.
- 8:42Ti segnalano che qualcosa sta succedendo proprio.
- 8:43Le Delta Query sono un impianto a pioggia.
- 8:45Catturano tutto ciò che l'allarme ha ancato.
- 8:47Lavorano insieme.
- 8:47Le notifiche ti danno consapevolezza in tempo reale.
- 8:50Le Delta Query ti offrono un quadro completo che puoi riconciliare in qualsiasi momento.
- 8:53Il pattern consigliato è semplice.
- 8:55Usa le notifiche di modifica per una consapevolezza immediata.
- 8:57Segui una Delta Query periodicamente, magari ogni poche ore o una volta al giorno, per rilevare
- 9:01eventuali sfuggite.
- 9:02In questo modo, anche se una notifica viene persa o una sottoscrizione scade, non perderai
- 9:05mai una modifica in modo permanente.
- 9:07Casi d'uso nel mondo reale.
- 9:09Cosa puoi costruire?
- 9:10Quindi, cosa rende possibile tutto questo?
- 9:11Lascia che ti mostri alcuni esempi reali.
- 9:13Prendiamo l'automazione di risorse.
- 9:15Immagina che qualcuno si unisca alla tua azienda domani.
- 9:17Nel momento in cui entrai di crea un nuovo utente, viene inviata una notifica di modifica.
- 9:20La tua app recupera il profilo e crea gli account nella piattaforma HR per rilevamento, presenza
- 9:24e l'accesso agli edifici.
- 9:25Tutto in pochi secondi.
- 9:26Nessun polli, nessun ritardo.
- 9:28Su pure avvisi di sicurezza, supponiamo che l'account di utente venga disabilito.
- 9:31Una notifica di modifica avvia un flusso di lavoro che controlla cambiamenti sospetti e
- 9:34avvisi a team di sicurezza.
- 9:36Prima avresti dovuto eseguire il polli in prima.
- 9:38Ora è istantaneo.
- 9:39L'elaborazione dei contenuti funziona allo stesso modo.
- 9:41Quando un file arriva in una raccolta di documenti di SharePoint, vuoi sapere se si tratta di
- 9:44una fattura.
- 9:45La notifica ti informa che esiste un nuovo file.
- 9:47La tua app lo recupera e lo analizza tramite l'intelligenza artificiale per classificarlo
- 9:50e per classificarlo.
- 9:51Automaticamente.
- 9:53I dashboard in tempo reale ti permettono di vedere le analisi mentre accadono non quelle
- 9:55di ore fa.
- 9:56Le notifiche di modifica sincronizzano Dataverse con Fabric istantaneamente.
- 9:59I tuoi dashboard di Power BI si aggiornano quasi in tempo reale.
- 10:02Ecco un esempio che trovo interessante.
- 10:04Connettori di Copilot.
- 10:04Microsoft aggiunge la sincronizzazione in tempo reale tramite Webbook così gli agenti
- 10:08AI rispondono al momento in cui i dati cambi.
- 10:10Quando un record cliente viene aggiornato in NERAMICS 365, un agente Copilot genera un
- 10:14follow-up immediatamente, senza attese.
- 10:17Tutti questi esempi hanno una cosa in comune.
- 10:20Prima delle notifiche di modifica creavi job pianificati che eseguivano il polling ogni
- 10:23ora o giorno.
- 10:24Funzionava, ma era lento, inefficiente e fragile.
- 10:27Le notifiche di modifica capovolgono quei modelli.
- 10:29Tempo reale, basato su eventi, istantanei.
- 10:31Scegliere il canale di consegno giusto.
- 10:34Non ogni app necessita dello stesso tipo di consegno.
- 10:36Vediamo le tue opzioni.
- 10:37I webbook sono i più semplici.
- 10:39Graph invia un HTTP post al tuo endpoint, tu lo elabori e procedi.
- 10:43Per volumi da bassi a medi diciamo alcune centinaia di notifiche all'ora funziona bene.
- 10:46Ma cosa succede se stai costruendo qualcosa di più?
- 10:48Migliaia di notifiche al secondo possono sovraccaricare un singolo endpoint.
- 10:52Hai bisogno di qualcosa di più potente.
- 10:53Event Hub si gestisce milioni di eventi al secondo.
- 10:55Invece di inviare notifiche una ad una, Graph le invia a un hub.
- 10:59A tua app legge il proprio ritmo, con basso rischio di sovraccarico.
- 11:02Questo è per grandi scenari aziendali come migliaia di siti di SharePoint o milioni di caselle postali.
- 11:07Poi c'è Event Grid e l'opzione Serverless.
- 11:09Invia notifiche ad Azure Functions o Logic Apps e gestisce automaticamente i tentativi e la dead lettering.
- 11:13Invia notifiche ad Azure Functions o Logic Apps e gestisce automaticamente i tentativi e la dead lettering.