Funktions-AppSollten die Standard-Aktionen und Konnektoren nicht ausreichen, oder Aufgaben mit speziellen Anforderungen ausgeführt werden, bietet Microsoft die so genannten Funktions-Apps an. Eine Funktions-App stellt ein Framework dar, bei dem die Funktionalität, samt Ein- und Ausgabe-Parameter nahezu frei ausprogrammierbar sind. Durch das Framework werden nur die Rahmenregeln vorgegeben, durch die sich die App einfach als Aktion in eine Logik-App integrieren lässt. Die Ein- und Ausgaben der Funktions-App können wie die anderen Parameter in der Logik App verwendet werden. Damit steht der Logik App ein mächtiges Erweiterungswerkzeug zur Verfügung. Auch bei den Funktions-Apps steht das SaaS / iPaaS Konzept im Vordergrund. Die Wartung der Hardware und Systemsoftware entfällt komplett. Microsoft übernimmt die Wartung komplett und garantiert dadurch die Verfügbarkeit und Ausfallsicherheit der Plattform. Zusätzlich bietet Microsoft einen nicht zu unterschätzenden Mehrwert der Skalierbarkeit. Per Mausklick kann der Dienst auf einer weiteren Instanz ausgeführt werden und dadurch die doppelte Last aushalten.

 

Funktions-AppIm Beispiel wird eine Datei per SFTP Konnektor von einem entfernten Server abgeholt. Der Inhalt wird an eine Funktions-App weitergegeben mit den Parametern "command" und "filename". Diese Parameter können von der Funktions-App ausgewertet werden und deren Ausführung steuern. Das Ergebnis wird JSON-formatiert an die Logik-App zurückgeliefert. So können nicht nur der Status-Code der Ausführung an sich, sondern auch spezifische Ergebniswerte geliefert und von der Logik-App ausgewertet und weiterverwendet werden. Im Beispiel kann die Logik App die beiden Parameter "jobID" und "status" in den nachfolgenden Aktionen verwenden. Deren Wert kann dann die weitere Ausführung beeinflussen.

Das Erstellen einer Funktions-App wird durch die Integration der Azure-SDK in Visual Studio erheblich erleichtert. So wird beim Erzeugen einer neuen App automatisch der Rahmen der App erstellt. Der Entwickler kann sich also auf die Funktionalität konzentrieren. Ebenso bietet Microsoft die Möglichkeit des Testens und Debuggens indem die App in einem lokalen IIS Container ausgeführt wird.

Das Deployment der App läuft anschließend über die so genannten "Publish Settings", die lokal im Visual Studio erstellt, sowie direkt in Azure erzeugt und dann ins Visual Studio importiert werden können. Auf diese Weise bietet Microsoft die Möglichkeit die App in unterschiedlichen Umgebungen einzuspielen und ein Deployment-Prozess mit Entwicklungs-, Test- und Produktiv-Umgebungen aufzusetzen.

Auch die Abrechnung der Funktions-App kann sehr attraktiv sein. Dabei gibt es zwei Möglichkeiten:

  1. Verbrauchsbasierte Abrechnung: hier werden die CPU-Zeit und die RAM-Nutzung jeder Ausführung der Funktion ausgewertet und in Rechnung gestellt. Dies bietet gerade bei wenigen oder sehr kurzen Ausführungen einen sehr kostengünstigen Betrieb der Dienste in der Cloud.

  2. App Service basierte Abrechnung: hier fällt eine monatliche Gebühr an. Die App wird in einer eigenen virtuellen Maschine ausgeführt, die lastanforderungsgerecht ausgewählt werden kann.  Diese Abrechnungsmethode bietet sich für hohe Lasten und Ausführungshäufigkeiten an, da die Kosten nach oben gedeckelt sind.

Sollte die Leistung nicht ausreichen, kann die App per Mausklick skaliert werden, das Load-Balancing übernimmt dadurch das Azure Backend.

Für die nötige Sicherheit sorgen die Verbindung aus einer sicheren Verbindungsschickt über HTTPS und die Nutzung von Zugriffs-Tokens die nur dem jeweiligen Besitzer der Funktions-App bekannt sind und durch ihn verwaltet werden. Über die Tokens kann jeder Zugriff auf die App gesteuert werden, unter anderem können so verschiedene Quellen, die die App nutzen voneinander getrennt werden und einzeln berechtigt werden.

Die Möglichkeiten, die mit einer Funktions-App abgedeckt werden können sind praktisch unbegrenzt, da die Funktionalitäten des gesamten .NET Frameworks genutzt werden kann. Zusätzlich können eigene oder fremde Bibliotheken eingebunden werden und damit bestehende Funktionen in die Cloud gehoben werden ohne hohe Entwicklungskosten.

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv
 
Go to Top