Erstellen eines Projektes
Über die VS Code Oberfläche kann im Azure Fenster (Strg+Shift+A) ein Projekt angelegt werden.
Nach der Auswahl eines gewünschten Projektverzeichnisses wird man aufgefordert, eine Projektsprache zu wählen.
Für diese Dokumentation wurde die Sprache C# gewählt.
Anschließend kann (aber nicht zwingend) ein Logic App Template gewählt werden.
Erstellen einer Azure Function
Über das Azure Fenster (Strg+Shift+A) kann dem Projekt nun eine Azure Function hinzugefügt werden. Dafür muss in der Azure Toolbar das entsprechende Feld betätigt werden.
Bei der Erstellung kann ein gewünschter Trigger, ein Name und ein Namespace für die Azure Function gewählt werden.
Wenn unaufgelöste Abhängigkeiten in der Azure Function bestehen, können diese im aufpoppenden Fenster über die Schaltfläche Restore aufgelöst werden (eventuell werden einige Abhängigkeiten erst aufgelöst, wenn eine Logic App erstellt wird).
Die erstellte Logic App kann nach Belieben angepasst werden. Folgende Logic App wird im weiteren Verlauf der Dokumentation verwendet.
Erstellen und Ausführen einer Logic App
Über das Azure Fenster (Strg+Shift+A) kann dem Projekt nun eine Logic App hinzugefügt werden. Dafür muss in der Azure Toolbar das Create Workflow… Feld betätigt werden.
Bei der Erstellung der Logic App kann der State (Stateful/Stateless) und der Name gewählt werden. Im Projektverzeichnis befinden sich nun die angelegten Azure Functions (blau) und jeweils ein Unterverzeichnis für jede Logic App (rot).
Für Logic Apps gibt es 3 Ansichten. Durch einen Linksklick auf die workflow.json kann die Logic App in Form des Json-Codes angepasst werden. Durch einen Rechtsklick auf die workflow.json kann der Designer der Logic App geöffnet werden. Achtung! Hierfür muss der Microsoft Storage Emulator im Hintergrund laufen.
Über den Designer kann eine Logic App wie gewohnt über die Azure-Oberfläche angepasst werden. In folgendem Beispiel wird ein Http-Request-Trigger, die zuvor erstellte lokale Azure Function und ein Http-Response mit dem Resultat der Azure Function verwendet.
Die Bearbeitung der Logic App wird über die Save-Schaltfläche gespeichert. Durch Aktivierung der F5-Taste kann das Projekt nun ausgeführt werden.
Nach dem Start des Projektes kann die Logic App Overview durch einen Rechtsklick auf die workflow.json geöffnet werden.
Der geöffneten Übersicht kann nun sowohl die Trigger URL, als auch die Run-Overview entnommen werden.
Durch einen Klick auf die 3 Punkte (…) kann ein Run auch im Designer untersucht werden.
Die Runübersicht im Designer ist hierbei analog zur Übersicht in Azure.
Deployment
Soll die erstellte Functions App nun deployed werden, so erfolgt das wieder im Azure Fenster (Strg+Shift+A). Dies erfolgt durch Betätigung der Pfeilschaltfläche.
Nach der Betätigung der Pfeilschaltfläche muss zunächst eine Azure Subscription gewählt werden
und anschließend die Function App, in die das Projekt deployed werden soll.
Vorherige Deployments werden dabei überschrieben.
Die deployte Function App kann im Azure Fenster (Strg+Shift+A) analog zur lokalen Version untersucht werden. Dafür muss in der Oberfläche zuerst die entsprechende Subscription und dann die Functions App aufgeklappt werden.
In der Logic App Overview kann nun die Trigger URL der deployten Logic App entnommen werden. Außerdem können Runs untersucht werden die über die Azure Cloud liefen.
Fazit
Insgesamt ist der frühe Einblick in die lokale Entwicklung der Logic Apps sehr positiv. Da sich die Änderungen noch in einer Preview-Phase befinden, stößt man hin und wieder auf kleinere Mängel oder Fehler, welche meist aber schnell gelöst werden können. Ein sehr positiver Vorteil ist, dass man bei der Entwicklung mit einem „lokalen Zwillingen“ der Azure-Ressourcen arbeitet. Im Vergleich zu ARM-Templates sind diese leserlicher, lassen sich leichter anpassen und können lokal getestet werden. Im Übrigen können die entwickelten Ressourcen alternativ zur Function App auch in einen Docker Container deployed werden. Wahrscheinlich wird Logic Apps Everywhere keinen architektonischen Durchbruch liefern, macht den Umgang mit Logic Apps und Azure Functions aber einfacher und angenehmer.