Das Grundgerüst für die Azure Functions App steht. Im vierten Teil dieses Tutorials rollen nun wir den eigentlichen Funktions-Code für unsere serverlose Web-Anwendung aus, der letztlich das Berechnen unserer Thumbnails gewährleisten soll.
Das Deployment Center von Azure Functions liefert einige Optionen zur Code-Integration, beispielsweise per Anbindung eines externen oder auch lokalen Git-Repositories.
(Bild: Drilling / Microsoft)
Genau wie Web Apps erlauben auch Functions Apps das Deployment von Code aus Vorlagen, manuell über die lokale IDE seiner Wahl oder eine CI/CD-Pipeline.
(Bild: Drilling / Microsoft)
Nachdem wir in den vorangegangenen vier Teilen die Grundlagen für unseren Image Resizer gelegt haben sind wir nun soweit, den eigentlichen Funktionscode für unsere Functions App bereitzustellen. Die im Folgenden verwendete Beispielfunktion für den eigentliche Größenänderung ist in C# auf GitHub verfügbar. Das „Pullen“ und Bereitstellen des Codes lässt sich z. B. über die Kommandozeile mit dem folgenden Befehl realisieren:
Man kann aber auch in der Functions App im Abschnitt „Funktionen / Funktionen“ mit einem Klick auf „Lokal entwickeln“ den zuvor von GitHub geklonten Code manuell von VS Code, Visual Studio oder jedem anderen Editor hinzufügen.
Das Deployment Center liefert einige Optionen zur Code-Integration, beispielsweise per Anbindung eines externen oder auch lokalen Git-Repositories.
(Bild: Drilling / Microsoft)
Der Upload des Codes kann aber auch über eine FTP-Verbindung erfolgen.
(Bild: Drilling / Microsoft)
Eine Alternative besteht darin, im Menü „Deployment Center“ wieder eine eigene CI/CD-Pipeline erstellen. Zur Wahl stehen hier das Anbinden eines lokalen Git-Repository, welches man sich zu diesem Zweck z. B. in der Cloud Shell von GitHub klonen kann, oder ein Upload des Funktions-Code via FTP. Sofort verwendbare FTP-Anmelde-Daten sowie der FTP-Endpunkt werden dabei im Dialog „App-Anmeldeinformationen“ automatisch kreiert; wer mag, kann aber auch individuelle Anmeldedaten unter „Benutzeranmeldeinformationen“ erstellen.
Den Service reaktiv machen
Jetzt fehlt nur noch unser Event-Trigger, den die Image-Berechnung soll ja automatisch erfolgen, sobald ein neues Bild hochgeladen wird. Hier benötigen wir eine Event-Subscription für den Azure-Service EventGrid.
Vergleicht man sämtliche Messaging-Dienste in Azure, also Event Grid, Event Hubs, Service Bus und Warteschlangen in einem Speicherkonto ist jeder der Dienste für bestimmte Szenarien gedacht. Allerdings ergänzen sich die Messaging-Dienste häufig gegenseitig und können zusammen verwendet werden; Event Grid jedoch eignet sich in erster Linie für die Reaktive Programmierung.
Konkret handelt es sich hierbei um ein Ereignisbackplane, das ereignisgesteuerte, reaktive Programmierung ermöglicht. Hierbei kommt ähnlich wie bei Simple Notification Service von AWS (SNS) ein Publisher-/Subscriber-Modell zum Einsatz, wobei Publisher Ereignisse ausgeben, aber keinen Einfluss darauf haben, welche Ereignisse behandelt werden.
Die Abonnenten entscheiden sozusagen selbst, welche Ereignisse sie behandeln möchten. Das Ereignis-Abonnement gibt also dabei an, welche vom Anbieter generierten Ereignisse an einen bestimmten Endpunkt gesendet werden sollen. In unserem Fall wird der Endpunkt von der Azure Functions verfügbar gemacht. Wie das funktioniert, sehen wir uns im letzten Teil an.
(ID:46866558)
Stand vom 30.10.2020
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von redaktionellen Newslettern nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://support.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung, Abschnitt Redaktionelle Newsletter.