Udostępnij za pośrednictwem


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

Rozszerzenie usługi Event Grid jest częścią pakietu rozszerzeń określonego w pliku projektu host.json. Może być konieczne zmodyfikowanie tego pakietu, aby zmienić wersję powiązania usługi Event Grid lub jeśli pakiety nie zostały jeszcze zainstalowane. Aby dowiedzieć się więcej, zobacz pakiet rozszerzeń.

Tę wersję rozszerzenia można dodać z pakietu rozszerzeń w wersji 3, dodając lub zastępując następującą konfigurację w host.json pliku:

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

Aby dowiedzieć się więcej, zobacz Aktualizowanie rozszerzeń.

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:

Type 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:

Type 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:

Type 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:

Type 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