Udostępnij za pomocą


Powiązania usługi Azure Event Grid dla usługi Azure Functions

W tej dokumentacji pokazano, jak nawiązać połączenie z usługą Azure Event Grid przy użyciu wyzwalaczy i powiązań usługi Azure Functions.

Event Grid to usługa platformy Azure, która wysyła żądania HTTP w celu powiadomienia o zdarzeniach występujących w wydawcach. Wydawca to usługa lub zasób, który pochodzi ze zdarzenia. Na przykład konto usługi Azure Blob Storage jest wydawcą, a przekazywanie lub usuwanie obiektów blob jest zdarzeniem. Niektóre usługi platformy Azure obsługują publikowanie zdarzeń w usłudze Event Grid.

Programy obsługi zdarzeń odbierają i przetwarzają zdarzenia. Usługa Azure Functions to jedna z kilku usług platformy Azure, które mają wbudowaną obsługę obsługi zdarzeń usługi Event Grid. Funkcje udostępnia wyzwalacz usługi Event Grid, który wywołuje funkcję po odebraniu zdarzenia z usługi Event Grid. Podobne powiązanie wyjściowe może służyć do wysyłania zdarzeń z funkcji do niestandardowego tematu usługi Event Grid.

Możesz również użyć wyzwalacza HTTP do obsługi zdarzeń usługi Event Grid. Aby dowiedzieć się więcej, zobacz Odbieranie zdarzeń do punktu końcowego HTTP. Zalecamy użycie wyzwalacza usługi Event Grid za pośrednictwem wyzwalacza HTTP.

Akcja Typ
Uruchamianie funkcji po wysłaniu zdarzenia usługi Event Grid Wyzwalacz
Wysyła zdarzenie usługi Event Grid Powiązanie wyjściowe
Kontrolowanie zwróconego kodu stanu HTTP Punkt końcowy HTTP

Instalowanie rozszerzenia

Instalowany pakiet NuGet rozszerzenia zależy od trybu języka C#, którego używasz w aplikacji funkcji:

Funkcje są wykonywane w izolowanym procesie roboczym języka C#. Aby dowiedzieć się więcej, zobacz Przewodnik dotyczący uruchamiania usługi Azure Functions w języku C# w izolowanym procesie roboczym.

Funkcjonalność rozszerzenia różni się w zależności od wersji rozszerzenia:

Dodaj rozszerzenie do projektu, instalując pakiet NuGet w wersji 3.x.

Instalowanie pakietu

Aby móc używać tego rozszerzenia powiązania w aplikacji, upewnij się, że plik host.json w katalogu głównym projektu zawiera następujące extensionBundle odwołanie:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

W tym przykładzie version[4.0.0, 5.0.0) wartość polecenia nakazuje hostowi usługi Functions użycie wersji pakietu, która jest co najmniej 4.0.0 mniejsza niż 5.0.0, która zawiera wszystkie potencjalne wersje 4.x. Ta notacja skutecznie utrzymuje aplikację w najnowszej dostępnej wersji pomocniczej pakietu rozszerzenia v4.x.

Jeśli to możliwe, należy użyć najnowszej wersji głównej pakietu rozszerzeń i zezwolić środowisku uruchomieniowemu na automatyczne utrzymywanie najnowszej wersji pomocniczej. Zawartość najnowszego pakietu można wyświetlić na stronie wydania pakietów rozszerzeń. Aby uzyskać więcej informacji, zobacz Pakiety rozszerzeń usługi Azure Functions.

Zagadnienia dotyczące rozszerzenia usługi Event Grid:

  • Wersje rozszerzenia usługi Event Grid starsze niż 3.x nie obsługują schematu CloudEvents. Aby użyć tego schematu, zamiast tego użyj wyzwalacza HTTP.
  • Powiązanie wyjściowe usługi Event Grid jest dostępne tylko dla funkcji 2.x i nowszych.

Typy powiązań

Typy powiązań obsługiwane dla platformy .NET zależą zarówno od wersji rozszerzenia, jak i trybu wykonywania języka C#, który może być jednym z następujących elementów:

Izolowana biblioteka klas procesów roboczych skompilowana funkcja języka C# jest uruchamiana w procesie odizolowanym od środowiska uruchomieniowego.

Wybierz wersję, aby wyświetlić szczegóły typu powiązania dla trybu i wersji.

Proces izolowany proces roboczy obsługuje typy parametrów zgodnie z poniższymi tabelami. Obsługa tworzenia powiązań z Streamelementami i i z usługi Azure.Messaging jest dostępna w wersji zapoznawczej.

Wyzwalacz usługi Event Grid

Jeśli chcesz, aby funkcja przetwarzała pojedyncze zdarzenie, wyzwalacz usługi Event Grid może powiązać z następującymi typami:

Typ Opis
Typy serializowalne w formacie JSON Funkcje próbują wykonać deserializacji danych JSON zdarzenia w zwykły typ obiektu CLR (POCO).
string Zdarzenie jako ciąg.
BinaryData1 Bajty komunikatu zdarzenia.
CloudEvent1 Obiekt zdarzenia. Użyj polecenia , gdy usługa Event Grid jest skonfigurowana do dostarczania przy użyciu schematu CloudEvents.
EventGridEvent1 Obiekt zdarzenia. Użyj polecenia , gdy usługa Event Grid jest skonfigurowana do dostarczania przy użyciu schematu usługi Event Grid.

Jeśli chcesz, aby funkcja przetwarzała partię zdarzeń, wyzwalacz usługi Event Grid może powiązać z następującymi typami:

Typ Opis
CloudEvent[] 1,
EventGridEvent[] 1,
string[],
BinaryData[] 1
Tablica zdarzeń z partii. Każdy wpis reprezentuje jedno zdarzenie.

1 Aby użyć tych typów, należy odwołać się do elementów Microsoft.Azure.Functions.Worker.Extensions.EventGrid 3.3.0 lub nowszych oraz typowych zależności dla powiązań typu zestawu SDK.

Powiązanie danych wyjściowych usługi Event Grid

Jeśli chcesz, aby funkcja zapisywała pojedyncze zdarzenie, powiązanie danych wyjściowych usługi Event Grid może wiązać się z następującymi typami:

Typ Opis
string Zdarzenie jako ciąg.
byte[] Bajty komunikatu zdarzenia.
Typy serializowalne w formacie JSON Obiekt reprezentujący zdarzenie JSON. Funkcje próbują serializować zwykły typ obiektu CLR (POCO) do danych JSON.

Jeśli chcesz, aby funkcja zapisywała wiele zdarzeń, powiązanie danych wyjściowych usługi Event Grid może wiązać się z następującymi typami:

Typ Opis
T[] gdzie T jest jednym z typów zdarzeń Tablica zawierająca wiele zdarzeń. Każdy wpis reprezentuje jedno zdarzenie.

W przypadku innych scenariuszy wyjściowych utwórz element EventGridPublisherClient i użyj go bezpośrednio z poziomu usługi Azure.Messaging.EventGrid. Zobacz Rejestrowanie klientów platformy Azure, aby zapoznać się z przykładem użycia wstrzykiwania zależności w celu utworzenia typu klienta z zestawu Azure SDK.

ustawienia host.json

Wyzwalacz usługi Event Grid używa żądania HTTP elementu webhook, które można skonfigurować przy użyciu tych samych ustawień host.json co wyzwalacz HTTP.

Następne kroki