Latest / M365.FM – podcast o Microsoft 365, Copilot i AI po polsku / Powiadomienia o zmianach w Microsoft Graph wyjaśnione: czas rzeczywisty zamiast pollingu (Dubbing AI)
Transcript
- 0:00Gotowi na 10 dni z Microsoft 365, kopilotem sztuczną inteligencją, azur i ludźmi kształtującymi przyszłość pracy?
- 0:07W styczniu powraca M365Con i tym razem działamy z większym rozmachem.
- 0:12Dołącz do nas podczas sesji na żywo praktycznych pokazów i zdobądź wiedzę od MVP oraz ekspertów z całego świata.
- 0:18Koniec z ogólnymi prezentacjami i niekończącymi się modnymi hasłami.
- 0:22Zajmujemy się prawdziwymi wyzwaniami, kopilot studio, agentami, a i fabrik, bezpieczeństwem, ładem korporacyjnym i automatyzacją.
- 0:29Niezależnie od tego, czy jesteś informatykiem, programistą czy liderem biznesowym, przygotowaliśmy sesję właśnie dla Ciebie.
- 0:35Podczas 10 pełnych dni możesz zgłębić wiele technologii i nawiązać kontakt z globalną społecznością.
- 0:40Oglądaj na żywo i zabierz praktyczne wskazówki do swojej organizacji.
- 0:44Styczeń 2027 roku, 10 dni, jedna społeczność Microsoft.
- 0:49Rejestracja jest już otwarta.
- 0:51Wejdź na m365con.net i zarezerwuj miejsce już dziś.
- 0:55To m365con.net.
- 0:59Dołącz teraz na m365con.net.
- 1:03Widzimy się na żywo w styczniu.
- 1:04Dzisiejszy temat to coś, o czym słyszał prawie każdy budujący rozwiązania w Microsoft 365.
- 1:09Większość osób jednak nie do końca rozumie, jak to działa od kulis.
- 1:13Mówię o powiadomieniach o zmianach w Microsoft Graph.
- 1:15Czym dokładnie są i dlaczego powinny Cię zainteresować?
- 1:18Zacznijmy od problemu, który rozwiązują.
- 1:20Wyobraź sobie, że budujesz aplikację, która musi wiedzieć, kiedy coś zmienia się w Microsoft 365.
- 1:24Może przychodzi nowy e-mail, ktoś aktualizuje plik w SharePoint lub nowy użytkownik zostaje dodany do katalogu firmy.
- 1:29Skąd Twoja aplikacja ma się o tym dowiedzieć?
- 1:31Rzecz w tym, że starym sposobem jest odpytywanie polling.
- 1:33Twoja aplikacja wysyła zapytanie do Microsoft Graph co kilka minut i pyta, czy pojawiło się coś nowego od ostatniego razu.
- 1:38Jeśli nic się nie zmieniło, zmarnowałeś jedno zapytanie.
- 1:40A jeśli coś zmieniło się 5 sekund po Twoim sprawdzeniu, nie dowiesz się o tym do następnego cyklu.
- 1:44Sprawdzasz albo za często, marnując zasoby i ryzykując ograniczenia, albo za rzadko, co oznacza, że coś przegapisz.
- 1:50Microsoft faktycznie ogranicza przepustowość aplikacji, które odpytują zbyt agresywnie.
- 1:53Programiści nazywają to Graph Jail.
- 1:55Twoja aplikacja zostaje na chwilę zablokowana za zbyt dużą liczbę zapytań.
- 1:58Pojawia się więc pytanie, czy nie ma lepszego sposobu?
- 2:01Co by było, gdyby zamiast ciągłego pytania aplikacji o nowości, system po prostu informował Cię, gdy coś się zmieni?
- 2:06Dokładnie to robią powiadomienia o zmianach.
- 2:08Czym są powiadomienia o zmianach w Microsoft Graph?
- 2:11Oto najprostsza definicja.
- 2:13Powiadomienia o zmianach pozwalają Twojej aplikacji reagować natychmiast na zdarzenia w Microsoft 365 bez ciągłego sprawdzania.
- 2:19Pomyśl o tym, jak o czujniku ruchu przy swojej skrzynce pocztowej.
- 2:22Zamiast zaglądać do niej co godzinę, instalujesz czujnik, który daje sygnał w momencie dostarczenia poczty.
- 2:27Przestajesz marnować czas na puste sprawdzenia i nigdy nie przegapisz przesyłki.
- 2:30To właśnie robią powiadomienia o zmianach dla Twojej aplikacji.
- 2:32Gdy coś się zmienia, na przykład pojawia się nowy e-mail, zaktualizowany plik lub wydarzenie w kalendarzu,
- 2:36Microsoft Graph automatycznie wysyła powiadomienie do Twojej aplikacji.
- 2:39Nie jest wymagane odpytywanie.
- 2:41System ten składa się z dwóch elementów, subskrypcji i powiadomienia, które współpracują ze sobą.
- 2:46Subskrypcja to moment, w którym informujesz Microsoft Graph, co chcesz obserwować.
- 2:49Mówisz na przykład, hej, daj mi znać, gdy ktoś wyśle nową wiadomość do tej skrzynki odbiorczej.
- 2:53Albo powiadom mnie, gdy plik zostanie zaktualizowany w tej bibliotece SharePoint.
- 2:56Rejestrujesz swoje zainteresowanie, a Graph je odnotowuje.
- 2:58Powiadomienie to etap, który następuje później.
- 3:00Gdy wystąpi zmiana, Graph wysyła żądanie HTTP Post do podanego przez Ciebie punktu końcowego.
- 3:04Twoja aplikacja odbiera ten komunikat Post, wie, że coś się stało i może zdecydować, co zrobić,
- 3:09na przykład pobrać nowe dane, uruchomić proces lub zaktualizować bazę danych.
- 3:12Oto kluczowa różnica w porównaniu z odpytywaniem.
- 3:15Powiadomienia są dostarczane automatycznie.
- 3:17Twoja aplikacja nie musi o nic pytać.
- 3:18System przesyła informacje w momencie ich wystąpienia.
- 3:20Na tym polega magia tego rozwiązania.
- 3:22Microsoft Graph obsługuje powiadomienia o zmianach dla szerokiej gamy zasobów.
- 3:25Wiadomości, wydarzenia, kontakty, użytkownicy, grupy, pliki, wiadomości w Teams,
- 3:29alerty bezpieczeństwa, właściwie wszystko, do czego masz dostęp przez Graph,
- 3:32można monitorować pod kątem zmian.
- 3:33Jak jednak faktycznie to skonfigurować?
- 3:35Jak powiedzieć systemowi Graph, co ma obserwować i gdzie wysyłać alerty?
- 3:38Tworząc subskrypcję, mówisz systemowi Graph, co ma obserwować.
- 3:41Czym więc jest subskrypcja?
- 3:42To po prostu żądanie rejestracji.
- 3:43Twoja aplikacja mówi, daj mi znać, kiedy wydarzy się ta konkretna rzecz.
- 3:46Wysyłasz to żądanie do interfejsu API Microsoft Graph.
- 3:48Graph zapisuje je i czeka.
- 3:49W tym żądaniu musisz podać systemowi Graph kilka szczegółów.
- 3:52Po pierwsze, zasób, który chcesz obserwować, czyli ścieżkę do danych.
- 3:55Na przykład Users, jeśli monitorujesz zmiany w kontach użytkowników.
- 3:59Lub Me, Mail Folders, Inbox, Messages, jeśli chcesz otrzymywać powiadomienia o nowych e-mailach.
- 4:03Następnie typ zmiany.
- 4:04Czy chcesz wiedzieć, kiedy coś zostało utworzone, zaktualizowane czy usunięte?
- 4:08Możesz wybrać jedną opcję lub poprosić o wszystkie trzy.
- 4:10Po trzecie, adres URL powiadomienia.
- 4:11To adres Twojego punktu końcowego, miejsce, do którego Graph powinien wysłać powiadomienie, gdy coś się stanie.
- 4:15Musi to być publicznie dostępny punkt końcowy HTTPS.
- 4:18Tutaj nie ma dróg na skróty.
- 4:19Po czwarte, data wygaśnięcia.
- 4:21Subskrypcje nie trwają wiecznie.
- 4:23Wybierasz przyszłą datę i godzinę, kiedy subskrypcja wygaśnie.
- 4:25Różne zasoby mają jednak różne maksymalne czasy trwania.
- 4:28Subskrypcje wiadomości Outlook mogą trwać do 7 dni.
- 4:30Wiadomości na czacie w Teams wygasają maksymalnie po 3 dniach.
- 4:32Pliki SharePoint mogą być przechowywane przez około 30 dni.
- 4:35Informacje o obecności?
- 4:36Wygasają one po zaledwie jednej godzinie.
- 4:38Oto konkretny przykład.
- 4:39Załóżmy, że chcesz wiedzieć, kiedy ktoś w Twojej firmie zmieni swoje stanowisko.
- 4:42Tworzysz subskrypcję dla zasobu użytkowników z typem zmiany Zaktualizowano.
- 4:46Wskazujesz swój adres URL powiadomień i ustawiasz wygaśnięcie na kilka dni.
- 4:50Gdy ktoś zaktualizuje swój profil w Azure Ad, Graph wysyła żądanie post do Twojego punktu końcowego z ładunkiem powiadomienia.
- 4:55Ten ładunek zawiera identyfikator użytkownika i informuje o tym, co uległo zmianie.
- 4:58Twoja aplikacja może wtedy zareagować, zaktualizować system HR, wysłać powiadomienie do menedżera lub wykonać inne potrzebne czynności.
- 5:03Graph odpowiada na żądanie subskrypcji, przesyłając identyfikator subskrypcji.
- 5:07Będzie on potrzebny później do zarządzania subskrypcją, jej odnawiania, aktualizowania lub usuwania.
- 5:11Ale jest pewien szczegół.
- 5:12Zanim Graph zacznie wysyłać powiadomienia, musi potwierdzić, że Twój punkt końcowy faktycznie działa i nasłuchuje.
- 5:16Wymaga to wykonania tak zwanej uścisku dłoni, handshake, wyjaśnienie tokena walidacji uścisku dłoni.
- 5:21Kiedy tworzysz subskrypcję, Microsoft Graph nie ufa Twojemu punktowi końcowemu w ciemno.
- 5:26Najpierw wysyła testowy sygnał, czyli żądanie weryfikacji.
- 5:29Ten sygnał zawiera token walidacji, czyli losowy ciąg znaków.
- 5:32Twój punkt końcowy musi przechwycić ten token i odesłać go jako zwykły tekst w ciągu 10 sekund.
- 5:36Pomyśl o tym, jak o kurierze dzwoniącym do drzwi, aby sprawdzić, czy jesteś w domu, zanim zostawi paczkę.
- 5:41Jeśli nikt nie odpowiada, kurier niczego nie zostawia.
- 5:43Podobnie jest tutaj.
- 5:44Jeśli Twój punkt końcowy nie odeśle tokena walidacji, Graph nie wyśle do niego powiadomień.
- 5:49Odpowiedź musi być zwykłym tekstem, nie JSON czy XML, tylko surowym ciągiem tokena.
- 5:53Jeśli format będzie błędny, uścisk dłoni nie powiedzie się.
- 5:56To zabezpieczenie.
- 5:57Dowodzi ono, że Twój punkt końcowy działa, nasłuchuje i jest pod Twoją kontrolą.
- 6:01Zapobiega to sytuacji, w której ktoś wskazuje subskrypcję na adres URL, do którego nie ma praw, mając nadzieję na przechwycenie powiadomień przeznaczonych dla kogoś innego.
- 6:06Brak uścisku dłoni oznacza brak subskrypcji.
- 6:08Graph odrzuca żądanie utworzenia i otrzymujesz błąd.
- 6:11Naprawiasz swój punkt końcowy i próbujesz ponownie.
- 6:13Gdy uścisk dłoni zakończy się powodzeniem, subskrypcja staje się aktywna i powiadomienia zaczynają napływać.
- 6:17Ale jest pewien szczegół.
- 6:18Nie napływają one w nieskończoność.
- 6:20Utrzymywanie połączenia.
- 6:22Odnawianie subskrypcji.
- 6:23Każda subskrypcja ma datę wygaśnięcia.
- 6:25Ustawiasz ją podczas tworzenia.
- 6:27Graph egzekwuje ten termin.
- 6:28Gdy nadejdzie ten dzień, subskrypcja wygasa.
- 6:30Koniec powiadomień.
- 6:32Potraktuj to jak parkometr.
- 6:34Wpłacasz pieniądze za czas, a gdy ten minie, flaga wygaśnięcia się podnosi.
- 6:38Różne zasoby mają różne limity.
- 6:39Wiadomości Outlook mogą działać przez 7 dni, czaty Teams przez 3 dni, pliki SharePoint przez około 30 dni, a informacje o obecności tylko przez 1 godzinę.
- 6:47Twoja aplikacja nie może po prostu utworzyć subskrypcji i o niej zapomnieć.
- 6:50Potrzebujesz procesu, który utrzyma ją przy życiu.
- 6:52Odnawianie jest proste.
- 6:53Wyślij żądanie patch z identyfikatorem subskrypcji.
- 6:56Uwzględnij nową datę wygaśnięcia.
- 6:58Zrób to przed wygaśnięciem obecnej, a Graph przedłuży subskrypcję.
- 7:01Oto najlepsza praktyka, którą zalecam.
- 7:03Sprawdzaj znacznik czasu wygaśnięcia w każdym otrzymanym powiadomieniu.
- 7:06Jeśli termin jest bliski, powiedzmy w ciągu dnia, odnów ją od razu.
- 7:09Dzięki temu nie potrzebujesz osobnego zadania w tle do zarządzania subskrypcjami.
- 7:12Firma Microsoft dodała również powiadomienia o cyklu życia.
- 7:15Te alerty ostrzegają przed wygaśnięciem subskrypcji.
- 7:18Informują, kiedy subskrypcja ma się skończyć lub kiedy token dostępu wymaga ponownej autoryzacji.
- 7:22Zasubskrybuj je, a Twoja aplikacja odnowi się, zanim cokolwiek przestanie działać.
- 7:26Co jednak, jeśli Twój punkt końcowy padnie lub przegapisz okno odnowienia?
- 7:29Tutaj przydaje się siatka bezpieczeństwa.
- 7:31Kiedy coś idzie nie tak, niezawodność i siatki bezpieczeństwa.
- 7:33Twoja subskrypcja jest aktywna, punkt końcowy nasłuchuje, powiadomienia napływają.
- 7:37Wszystko wygląda dobrze, ale co się stanie, gdy coś się zepsuje?
- 7:40Może Twój punkt końcowy wyłączył się na czas konserwacji?
- 7:42Problem sieciowy zgubił powiadomienie lub po prostu przegapiłeś okno odnowienia i subskrypcja wygasła?
- 7:46Takie rzeczy się zdarzają.
- 7:47Pytanie brzmi, jak odzyskać sprawność?
- 7:49Microsoft Graph oczekuje, że Twój punkt końcowy webhuk zareaguje szybko, w ciągu 3 sekund.
- 7:53Jeśli zajmuje to więcej czasu, Graph oznacza go jako wolny.
- 7:55Jeśli ponad 10% Twoich odpowiedzi przekracza 3 sekundy w dowolnym 10-minutowym oknie,
- 7:59Graph opóźnia powiadomienia o 10 minut.
- 8:01Wysyła tylko małą próbkę, aby sprawdzić, czy odzyskałeś sprawność.
- 8:04Jest gorzej.
- 8:05Jeśli ponad 15% Twoich odpowiedzi przekracza 10-sekundowy limit czasu ponowienia,
- 8:08Graph oznacza punkt końcowy jako porzucony.
- 8:09Powiadomienia zostają całkowicie wstrzymane na 10 minut.
- 8:12Przepadają.
- 8:12Nie możesz ich odzyskać, dlatego Twój punkt końcowy musi być szybki i niezawodny.
- 8:16Nie oznacza to, że musisz przetworzyć każde powiadomienie w czasie poniżej 3 sekund.
- 8:20Wystarczy szybko potwierdzić otrzymanie odpowiedzią 202 Accepted,
- 8:22a następnie przetworzyć powiadomienie asynchronicznie.
- 8:24Dodaj do kolejki.
- 8:25Obsłuż później.
- 8:26Kluczem jest ta szybka reakcja.
- 8:28Nawet przy idealnym punkcie końcowym pewne rzeczy mogą pójść nie tak.
- 8:31Subskrypcje wygasają.
- 8:32Zdarzają się problemy z siecią.
- 8:33W rzadkich przypadkach sam Microsoft Graph może pominąć powiadomienie.
- 8:36Dlatego potrzebujesz siatki bezpieczeństwa?
- 8:38Zapytań Delta.
- 8:39Pomyśl o tym w ten sposób.
- 8:40Powiadomienia o zmianach to alarm przeciwpożarowy.
- 8:42Mówią Ci, że coś dzieje się właśnie teraz.
- 8:44Zapytania Delta to system zraszaczy.
- 8:45Wyłapują wszystko, co ominął alarm.
- 8:47Działają razem.
- 8:48Powiadomienia dają świadomość w czasie rzeczywistym.
- 8:50Zapytania Delta dają pełny obraz, który możesz uzgodnić w dowolnym momencie.
- 8:53Zalecany wzorzec jest prosty.
- 8:55Używaj powiadomień o zmianach, aby być na bieżąco.
- 8:57Uruchamiaj okresowo zapytania Delta,
- 8:59na przykład co kilka godzin lub raz dziennie,
- 9:00aby wyłapać ewentualne przeoczenia.
- 9:02Dzięki temu, nawet jeśli powiadomienie zaginie lub subskrypcja wygaśnie,
- 9:05żadna zmiana nie zostanie trwale pominięta.
- 9:07Rzeczywiste przypadki użycia.
- 9:09Co możesz zbudować?
- 9:10Co więc to faktycznie umożliwia?
- 9:11Pozwól, że przedstawię kilka realnych przykładów.
- 9:13Weźmy automatyzację działu kadr.
- 9:15Wyobraź sobie, że jutro ktoś dołącza do Twojej firmy.
- 9:17W chwili, gdy EntraID tworzy nowego użytkownika,
- 9:19wysyłane jest powiadomienie o zmianie.
- 9:21Twoja aplikacja pobiera profil i tworzy konta w systemie kadrowym,
- 9:23rejestracji czasu pracy i dostępu do budynku wszystko w kilka sekund.
- 9:26Bez odpytywania, bez opóźnień.
- 9:28W przypadku alertów bezpieczeństwa powiedzmy,
- 9:29że konto użytkownika zostaje zablokowane.
- 9:31Powiadomienie o zmianie uruchamia przepływ pracy,
- 9:32który sprawdza podejrzane aktywności i ostrzega zespół do spraw.
- 9:35Bezpieczeństwa.
- 9:36Wcześniej trzeba było sprawdzać co kilka minut.
- 9:38Teraz dzieje się to natychmiast.
- 9:39Przetwarzanie treści działa w ten sam sposób.
- 9:41Gdy plik trafia do biblioteki dokumentów SharePoint,
- 9:44chcesz wiedzieć, czy to faktura.
- 9:45Powiadomienie informuje, że pojawił się nowy plik.
- 9:47Twoja aplikacja pobiera go, klasyfikuje przy użyciu AI
- 9:49i przesyła do odpowiedniego systemu rozliczeń całkowicie automatycznie.
- 9:52Pulpity nawigacyjne w czasie rzeczywistym
- 9:54pozwalają widzieć analitykę na bieżąco, a nie sprzed kilku godzin.
- 9:56Powiadomienia o zmianach natychmiast synchronizują Dataverse z Fabric.
- 9:59Twoje pulpity Power BI aktualizują się niemal w czasie rzeczywistym.
- 10:02Oto przykład, który uważam za interesujący.
- 10:04Łączniki Copilot.
- 10:05Microsoft dodaje synchronizację w czasie rzeczywistym przez WebHockey,
- 10:08dzięki czemu agenci AI reagują w sekundzie zmiany danych.
- 10:10Gdy rekord klienta w Dynamics 365 zostaje zaktualizowany,
- 10:14agent Copilot natychmiast generuje działania następcze bez czekania.
- 10:17Wszystkie te przykłady mają jedną wspólną cechę.
- 10:19Przed powiadomieniami o zmianach tworzyło się zaplanowane zadania,
- 10:22które sprawdzały dane co godzinę lub dzień.
- 10:24Działało to, ale było wolne, nieefektywne i zawodne.
- 10:27Powiadomienia o zmianach odwracają ten model.
- 10:29Czas rzeczywisty, sterowanie zdarzeniami, natychmiastowe działanie.
- 10:32Wybór właściwego kanału dostarczania.
- 10:34Nie każda aplikacja wymaga tego samego sposobu dostarczania.
- 10:36Przyjrzyjmy się dostępnym opcjom.
- 10:38WebHockey są najprostsze.
- 10:39Graph wysyła HTTP post do Twojego punktu końcowego.
- 10:41Ty przetwarzasz go i gotowe.
- 10:43Dla małego i średniego wolumenu powiedzmy kilkuset powiadomień na godzinę.
- 10:45Sprawdza się to świetnie.
- 10:46Co jednak, jeśli budujesz coś większego?
- 10:48Tysiące powiadomień na sekundę mogą przeciążyć pojedynczy punkt końcowy.
- 10:52Potrzebujesz czegoś mocniejszego.
- 10:53Event Hubs obsługuje miliony zdarzeń na sekundę.
- 10:56Zamiast wysyłać powiadomienia pojedynczo,
- 10:58Graph przesyła je do centrum zdarzeń.
- 10:59Twoja aplikacja odczytuje je w swoim tempie z niskim ryzykiem przeciążenia.
- 11:02Jest to rozwiązanie dla dużych scenariuszy korporacyjnych,
- 11:04takich jak tysiące witryn SharePoint czy miliony skrzynek pocztowych.
- 11:06Istnieje też Event Grid, opcja bezserwerowa.
- 11:09Wysyła powiadomienia do usług Azure Functions lub Logic Apps
- 11:11oraz automatycznie obsługuje ponawianie prób i kolejki wiadomości niedoręczalnych.