Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym szybkim starcie tworzysz funkcję z wyzwalaczem Event Grid w Visual Studio Code, tworzysz temat Event Grid i subskrypcję event w portalu Azure, a następnie wysyłasz testowe zdarzenie, aby sprawdzić, jak Event Grid kieruje niestandardowe zdarzenia do Twojej funkcji Azure.
Azure Event Grid to usługa routingu zdarzeń w chmurze, która dostarcza zdarzenia od źródła do handlera. Azure Functions jest jednym z obsługiwanych programów obsługi zdarzeń. Łącząc te dwa elementy, możesz automatycznie uruchamiać kod w odpowiedzi na zdarzenia, bez konieczności sprawdzania zmian czy zarządzania infrastrukturą.
Jeśli nie masz jeszcze konta platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Wymagania wstępne
- Program Visual Studio Code zainstalowany na jednej z obsługiwanych platform.
- Azure Functions rozszerzenie dla Visual Studio Code.
- .NET 8.0 SDK lub nowszy, którego rozszerzenie wykorzystuje do budowy i wdrażania funkcji C#.
Tworzenie funkcji z wyzwalaczem usługi Event Grid przy użyciu programu Visual Studio Code
W tej sekcji użyjesz programu Visual Studio Code do utworzenia funkcji z wyzwalaczem usługi Event Grid.
Tworzenie funkcji
Otwórz Visual Studio Code.
Na pasku po lewej stronie wybierz pozycję Azure.
W okienku po lewej stronie w sekcji OBSZAR ROBOCZY wybierz pozycję Azure Functions na pasku poleceń. Następnie wybierz pozycję Utwórz funkcję.
Wybierz folder, w którym chcesz zapisać kod funkcji.
Dla polecenia Create new project (Utwórz nowy projekt ) w polu Language (Język) wybierz pozycję C#. Wybierz Enter.
W przypadku środowiska uruchomieniowego platformy .NET wybierz .NET 8.0 Isolated LTS, a następnie naciśnij Enter.
W polu Szablon dla funkcji wybierz Azure Event Grid trigger. Wybierz Enter.
W polu Nazwa funkcji wprowadź nazwę funkcji. Wybierz Enter.
W polu Przestrzeń nazw wprowadź nazwę przestrzeni nazw funkcji. Wybierz Enter.
Otwórz projekt w bieżącym oknie lub nowym oknie lub dodaj go do obszaru roboczego.
Poczekaj na utworzenie funkcji. Stan tworzenia funkcji zostanie wyświetlony w prawym dolnym rogu.
Wyświetl kod w pliku YourFunctionName.cs , w szczególności metodę
Run. Wypisuje informacje za pomocą loggera.[Function(nameof(MyEventGridTriggerFunc))] public void Run([EventGridTrigger] CloudEvent cloudEvent) { _logger.LogInformation("Event type: {type}, Event subject: {subject}", cloudEvent.Type, cloudEvent.Subject); }
Wdrażanie funkcji na platformie Azure
Wybierz przycisk Azure na pasku po lewej stronie, jeśli okienko platformy Azure nie jest jeszcze otwarte.
Umieść kursor na projekcie i wybierz przycisk Wdróż na platformie Azure .
Na liście rozwijanej palety poleceń wybierz pozycję + Utwórz nową aplikację funkcji, a następnie wybierz Enter.
W polu Nazwa wprowadź globalnie unikatową nazwę nowej aplikacji funkcji. Wybierz Enter.
W polu Stos środowiska uruchomieniowego wybierz opcję .NET 8 isolated.
W polu Lokalizacja dla zasobów platformy Azure wybierz region, który jest blisko Ciebie.
Stan tworzenia aplikacji funkcji pojawia się na karcie AZURE w dolnym panelu. Po utworzeniu aplikacji funkcji zobaczysz stan wdrażania funkcji utworzonej lokalnie w aplikacji funkcji.
Rozwiń komunikat Tworzenie aplikacji funkcji zakończyło się pomyślnie po pomyślnym wdrożeniu. Wybierz Kliknij, aby wyświetlić zasób. Upewnij się, że funkcja została wybrana w sekcji ZASOBY w okienku po lewej stronie.
Kliknij prawym przyciskiem myszy funkcję, a następnie wybierz polecenie Otwórz w portalu.
W razie potrzeby zaloguj się do platformy Azure i upewnij się, że zostanie wyświetlona strona Aplikacja funkcji dla Twojej funkcji.
W dolnym okienku wybierz funkcję.
Przejdź do karty Dzienniki . Pozostaw tę kartę otwartą, aby zobaczyć zarejestrowane komunikaty podczas wysyłania zdarzenia do tematu usługi Event Grid w dalszej części tego artykułu.
Utwórz temat niestandardowy usługi Event Grid
Temat usługi Event Grid zawiera punkt końcowy zdefiniowany przez użytkownika, do którego są ogłaszane zdarzenia.
Na nowej karcie okna przeglądarki internetowej zaloguj się do witryny Azure Portal.
W górnym pasku wyszukiwania wyszukaj Event Grid Topics, a następnie wybierz Event Grid Topics.
Na stronie Tematy wybierz pozycję + Utwórz na pasku poleceń.
W okienku Tworzenie tematu wykonaj następujące kroki:
W polu Subskrypcja wybierz subskrypcję platformy Azure.
W obszarze Grupa zasobów wybierz tę samą grupę zasobów z poprzednich kroków.
W polu Nazwa podaj unikatową nazwę tematu niestandardowego. Nazwa tematu musi być unikalna, ponieważ reprezentuje ją wpis w systemie nazw domen (DNS).
Nie używaj nazwy pokazanej na przykładowym obrazie. Zamiast tego utwórz własną nazwę. Musi zawierać od 3 do 50 znaków i zawierać tylko wartości a-z, A-Z, 0-9 i łącznik (
-).W obszarze Region wybierz lokalizację tematu usługi Event Grid.
Wybierz Przejrzyj i utwórz.
Na karcie Przeglądanie i tworzenie przejrzyj ustawienia, a następnie wybierz pozycję Utwórz.
Po utworzeniu tematu niestandardowego wybierz Przejdź do zasobu, aby otworzyć stronę Temat Event Grid dla tego tematu.
Subskrybowanie niestandardowego tematu usługi Event Grid
Subskrybujesz temat usługi Event Grid, aby poinformować usługę Event Grid o zdarzeniach, które mają być śledzone i gdzie mają być wysyłane zdarzenia.
Na stronie Temat Event Grid dla niestandardowego tematu wybierz na pasku narzędzi pozycję + Subskrypcja zdarzeń.
W okienku Tworzenie subskrypcji zdarzeń wykonaj następujące kroki:
W polu Nazwa wprowadź nazwę subskrypcji zdarzeń.
W polu Schemat zdarzeń wybierz pozycję Schemat zdarzeń w chmurze w wersji 1.0.
W polu Typ punktu końcowego wybierz pozycję Funkcja platformy Azure.
Wybierz pozycję Konfiguruj punkt końcowy.
W okienku Wybieranie funkcji platformy Azure wykonaj następujące kroki:
W polu Subskrypcja wybierz subskrypcję platformy Azure, która ma funkcję.
W polu Grupa zasobów wybierz grupę zasobów, która ma funkcję .
W polu Aplikacja funkcji wybierz swoją aplikację funkcji.
W polu Funkcja wybierz funkcję w aplikacji funkcji.
Wybierz pozycję Potwierdź wybór.
Ten krok jest opcjonalny, ale zalecamy go w scenariuszach produkcyjnych. W okienku Tworzenie subskrypcji zdarzeń przejdź na kartę Dodatkowe funkcje i ustaw wartości dla Maksymalna liczba zdarzeń na partię oraz Preferowany rozmiar partii w kilobajtach.
Przetwarzanie wsadowe może zapewnić wysoką przepływność. W polu Maksymalna liczba zdarzeń na partię ustaw maksymalną liczbę zdarzeń uwzględninych w subskrypcji w partii. Preferowany rozmiar partii w kilobajtach określa preferowaną górną granicę rozmiaru partii, ale można go przekroczyć, jeśli pojedyncze zdarzenie jest większe niż ten próg.
W okienku Tworzenie subskrypcji zdarzeń wybierz pozycję Utwórz.
Wyślij zdarzenie testowe do tematu Event Grid
Teraz wyzwól zdarzenie, aby zobaczyć, jak usługa Event Grid dystrybuuje komunikat do punktu końcowego. Użyj interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell, aby wysłać zdarzenie testowe do tematu niestandardowego. Zazwyczaj aplikacja lub usługa Azure wysyła dane zdarzenia.
W pierwszym przykładzie użyto interfejsu wiersza polecenia platformy Azure. Pobiera on adres URL i klucz dla tematu niestandardowego oraz przykładowe dane zdarzenia. Użyj własnej nazwy tematu dla topicname. Tworzy przykładowe dane zdarzeń.
Element data danych JSON to ładunek zdarzenia. W tym polu można umieścić dowolny prawidłowo sformatowany kod JSON. Można też używać pola tematu do zaawansowanego routingu i filtrowania.
Narzędzie cURL wysyła żądania HTTP. W tym artykule użyjesz narzędzia cURL, aby wysłać zdarzenie do niestandardowego tematu.
Interfejs wiersza polecenia platformy Azure
W witrynie Azure Portal wybierz pozycję Cloud Shell. Jeśli jesteś w trybie programu Azure PowerShell, wybierz pozycję Przełącz na powłokę Bash.
Ustaw zmienne
topicnameiresourcegroupname, które są używane w poleceniach.Zastąp
TOPICNAMEnazwą tematu usługi Event Grid.topicname="TOPICNAME"Zastąp
RESOURCEGROUPNAMEciąg nazwą grupy zasobów platformy Azure, która zawiera temat usługi Event Grid.resourcegroupname="RESOURCEGROUPNAME"Użyj następującego polecenia, aby uzyskać punkt końcowy tematu. Po skopiowaniu i wklejeniu polecenia zaktualizuj nazwę tematu i nazwę grupy zasobów przed jego uruchomieniem.
endpoint=$(az eventgrid topic show --name $topicname -g $resourcegroupname --query "endpoint" --output tsv)Użyj następującego polecenia, aby uzyskać klucz dla tematu niestandardowego. Po skopiowaniu i wklejeniu polecenia zaktualizuj nazwę tematu i nazwę grupy zasobów przed jego uruchomieniem.
key=$(az eventgrid topic key list --name $topicname -g $resourcegroupname --query "key1" --output tsv)Skopiuj następującą instrukcję z definicją zdarzenia, a następnie wybierz Enter.
event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "make": "Ducati", "model": "Monster"},"dataVersion": "1.0"} ]'Uruchom następujące polecenie cURL, aby opublikować zdarzenie:
curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpointUpewnij się, że komunikat z funkcji jest wyświetlany na karcie Dzienniki dla tej funkcji w portalu Azure.
Azure PowerShell
W drugim przykładzie do wykonania podobnych kroków użyto programu Azure PowerShell.
W witrynie Azure Portal wybierz pozycję Cloud Shell lub przejdź do strony usługi Azure Cloud Shell. W lewym górnym rogu okna usługi Cloud Shell wybierz pozycję Przełącz do programu PowerShell.
Ustaw następujące zmienne. Po skopiowaniu i wklejeniu każdego polecenia zaktualizuj nazwę tematu i nazwę grupy zasobów przed jego uruchomieniem.
$resourceGroupName = "RESOURCEGROUPNAME"$topicName = "TOPICNAME"Uruchom następujące polecenia, aby uzyskać punkt końcowy i klucze dla tematu:
$endpoint = (Get-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $topicName).Endpoint $keys = Get-AzEventGridTopicKey -ResourceGroupName $resourceGroupName -Name $topicNamePrzygotuj zdarzenie. Skopiuj i uruchom następujące instrukcje w oknie usługi Cloud Shell:
$eventID = Get-Random 99999 #Date format should be SortableDateTimePattern (ISO 8601) $eventDate = Get-Date -Format s #Construct the body by using a hash table $htbody = @{ id= $eventID eventType="recordInserted" subject="myapp/vehicles/motorcycles" eventTime= $eventDate data= @{ make="Ducati" model="Monster" } dataVersion="1.0" } #Use ConvertTo-Json to convert the event body from a hash table to a JSON object #Append square brackets to the converted JSON payload because they're expected in the event's JSON payload syntax $body = "["+(ConvertTo-Json $htbody)+"]"Użyj polecenia cmdlet
Invoke-WebRequest, aby wysłać zdarzenie:Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}Upewnij się, że komunikat z funkcji pojawia się na karcie Dzienniki dla funkcji w witrynie Azure Portal.
Sprawdź, czy funkcja odebrała zdarzenie
Wywołano zdarzenie, a usługa Event Grid wysłała komunikat do punktu końcowego skonfigurowanego podczas tworzenia subskrypcji. Teraz możesz sprawdzić, czy funkcja ją odebrała.
Otwórz kartę Wywołanie dla funkcji.
Aby wyświetlić szczegóły, wybierz wywołanie.
Możesz również użyć karty Dzienniki .
Czyszczenie zasobów
Jeśli planujesz kontynuować pracę z tym zdarzeniem, nie usuwaj zasobów utworzonych w ramach tego artykułu. W przeciwnym razie usuń zasoby utworzone w tym artykule.
W polu wyszukiwania witryny Azure Portal wprowadź ciąg Grupy zasobów , a następnie wybierz pozycję Grupy zasobów.
Wybierz grupę zasobów, aby otworzyć okienko, aby uzyskać szczegółowe informacje.
Na pasku narzędzi wybierz pozycję Usuń grupę zasobów.
Potwierdź usunięcie, wprowadzając nazwę grupy zasobów, a następnie wybierz pozycję Usuń.
W oknie usługi Cloud Shell utworzono i użyto tej drugiej grupy zasobów widocznej na stronie Grupy zasobów. Usuń tę grupę zasobów, jeśli nie planujesz później korzystać z okna usługi Cloud Shell.
Powiązana zawartość
Wiesz już, jak tworzyć tematy i subskrypcje zdarzeń. Dowiedz się więcej na temat tego, co może Ci ułatwić usługa Event Grid:
- Informacje o usłudze Event Grid
- Kierowanie zdarzeń usługi Azure Blob Storage do niestandardowego internetowego punktu końcowego
- Monitorowanie zmian maszyn wirtualnych za pomocą usług Azure Event Grid i Logic Apps
- Przesyłaj duże zbiory danych do hurtowni danych
Aby dowiedzieć się więcej o publikowaniu zdarzeń i używaniu zdarzeń z usługi Event Grid przy użyciu różnych języków programowania, zobacz następujące przykłady: