Suchen

Webanwendung unter Microsoft Azure hosten, Teil 4 Reaktive Azure Functions App mit EventGrid

Autor / Redakteur: Dipl. -Ing. Thomas Drilling / Stephan Augsten

Unsere serverlose Functions App, die aus Bildern in einem Quell-Speicher-Blob Thumbnails in einem Ziel-Speicher-Blob errechnen kann, ist bereits funktionsfähig. Abschließend wollen wir den Vorgang mit einem Trigger in EventGrid automatisieren.

Firma zum Thema

Der aus GitHub manuell hochgeladene Funktions-Code „Thumbnail“ lässt sich auch nachträglich bearbeiten.
Der aus GitHub manuell hochgeladene Funktions-Code „Thumbnail“ lässt sich auch nachträglich bearbeiten.
(Bild: Drilling / Microsoft)

Der aus GitHub manuell hochgeladene Funktions-Code „Thumbnail“ muss mit einem Ereignis-Trigger verbunden werden.
Der aus GitHub manuell hochgeladene Funktions-Code „Thumbnail“ muss mit einem Ereignis-Trigger verbunden werden.
(Bild: Drilling / Microsoft)

Um die Thumbnail-Berechnung mit unserer Azure Functions App zu automatisieren, erstellen wir eine Event-Subscription. Eine solche gibt an, welche vom Anbieter generierten Ereignisse an einen bestimmten Endpunkt gesendet werden sollen. In diesem Fall wird der Endpunkt von unserer Azure-Funktion verfügbar gemacht.

In den folgenden Schritten erstellen wir ein Ereignisabonnement, das Benachrichtigungen an unsere Funktion im Azure-Portal sendet. Dazu navigieren wir nun im Azure-Portal zu unserer Functions-App und dort im Hauptmenü zu unserer Thumbnail-Function im Abschnitt „Funktionen“.

Der aus GitHub manuell hochgeladene Funktions-Code „Thumbnail“ ist im Menü „Programmieren und testen“ einseh- und bearbeitbar.
Der aus GitHub manuell hochgeladene Funktions-Code „Thumbnail“ ist im Menü „Programmieren und testen“ einseh- und bearbeitbar.
(Bild: Drilling / Microsoft)

Folgen wir dem Link „Thumbnail“, können wir durch Auswahl des Menüs „Programmieren und testen“ den Funktions-Code sehen oder bearbeiten und im Menü „Integration“ die gewünschten „Trigger“ konfigurieren.

Ein Trigger (hier Event Grid Trigger) dient als Auslöser für unseren Funktionscode. Der gewählte Auslöser kann aber jederzeit angepasst und bearbeitet werden.
Ein Trigger (hier Event Grid Trigger) dient als Auslöser für unseren Funktionscode. Der gewählte Auslöser kann aber jederzeit angepasst und bearbeitet werden.
(Bild: Drilling / Microsoft)

Hier klicken wir nun auf den Link „EventGrid Trigger“ und klicken dann im Popup-Menü „Trigger bearbeiten“ rechts oben auf den Link „Event Grid-Abonnement erstellen“.

Das Erstellen eines Event-Abonnements für das Event-Thema „azditeventgridtopic“.
Das Erstellen eines Event-Abonnements für das Event-Thema „azditeventgridtopic“.
(Bild: Drilling / Microsoft)

Auf der Seite „Ereignisabonnement erstellen“ müssen wir nichts weiter tun, als einen Namen für das Abonnement zu vergeben und bei „Ereignisschema“ den Eintrag „Event Grid-Schema“ zu wählen. Danach wählen wir im Abschnitt „Themendetails“ das gewünschte Speicherkonto mit dem Image-Container aus und vergeben einen Namen für das EventGrid-Thema. Im Abschnitt „Ereignistypen“ übernehmen wir die Default-Einstellung, was die zwei Ereignistypen „Blob Created“ und „Blob Deleted“ umfasst, gefolgt von einem Klick auf „Erstellen“.

Das neu erstellte EventGrid-Abonnement ist natürlich auch in der Eventsubscription-Console sichtbar.
Das neu erstellte EventGrid-Abonnement ist natürlich auch in der Eventsubscription-Console sichtbar.
(Bild: Drilling / Microsoft)

Ein Gegen-Check bestätigt das erfolgreiche Erstellen des Abonnements. Dazu sucht man im Portal nach „Ereignisabonnements“ und filtert die Anzeige nach „Thementyp“ (Storage Accounts) und „Standort“. Auch hier sollte jetzt der Endpunkt „Thumbnails“ auftauchen. Alternativ hätte man das Abonnement auch von hier aus erstellen können.

Test unseres Image-Resizers in der Azure Web-App.
Test unseres Image-Resizers in der Azure Web-App.
(Bild: Drilling / Microsoft)

Nun können wir die fertige serverlose App testen: Hierzu verbinden wir uns wieder mit unserer Foto-Upload Web-App aus Teil 1 und wählen eine Bild-Datei zum Hochladen aus. Das klappt optional auch per Drag&Drop. Nach dem „Verschwinden“ des hochgeladenen Bildes wird eine Kopie des hochgeladenen Bildes unter „Generated Thumnails“ angezeigt. Die Größe dieses Bildes wurde also von der Funktion geändert, dem thumnails-Container hinzugefügt und vom Webclient heruntergeladen.

Das automatisch und ereignisbasiert erstellte Image landet als Blob im Ziel-Container.
Das automatisch und ereignisbasiert erstellte Image landet als Blob im Ziel-Container.
(Bild: Drilling / Microsoft)

Ein Gegen-Check direkt in den Thumbnail-Container im Speicherkonto bestätigt den Erfolg ebenfalls.

(ID:46903633)

Über den Autor

Dipl. -Ing. Thomas Drilling

Dipl. -Ing. Thomas Drilling

IT-Consultant, Trainer, Freier Journalist