Wenn immer wir etwas umfangreichere Power Apps erstellen oder die Anforderungen etwas komplexer sind, greifen wir gerne auf Azure Functions als Helfer zurück.
Azure Functions sind der FaaS-Service von Microsoft Azure, analog zu etwa AWS Lambdas, und ermöglichen die Fokussierung auf die Erstellung einer Applikation, ohne sich um Infrastruktur kümmern zu müssen. Functions sind sehr kostengünstig und enorm vielseitig einsetzbar. Typischerweise verwenden wir Functions in einem Power Automate Workflow über einen http-Request. Request – Response. Easy. Jedoch wünscht man sich manchmal innerhalb der Power App die Möglichkeit, auf die Vielseitigkeit einer Azure Function setzen zu können, allerdings unterstützen PowerApps keine http-Requests. Was also tun?
Beim Ausprobieren von verschiedenen Konnektoren bin ich in Power Apps auf den Azure Queue Konnektor gestossen und dachte mir, damit sollte es doch möglich sein, zumindest einmal eine Nachricht direkt aus der App an eine Azure Function zu schicken. Diese können nämlich statt per http-Trigger auch via Nachricht aus einer Queue aufgerufen werden. Das war auch als kleines «Hello World»-Beispiel schnell umgesetzt:
Als ich dann die Methoden des Konnektors durchgeschaut habe, stach mir eine Methode sofort ins Auge: «GetMessages». Moment! Damit kann ich Nachrichten von einer Azure Function an eine Power App senden! Ebenfalls könnte man auch dynamisch Queues erstellen, beispielsweise für ein dynamisches Antwortesystem.
Ich erweiterte mein Hello-World-Beispiel so, dass die Azure Function in eine andere Queue «Hallo XY» schreibt, so dass XY der zuvor in der App eingegebene Name ist. Nur, wie rufe ich diese Queue jetzt in der Power App ab? Power Apps kennen keine Events. Jedoch gibt es in Power Apps den Timer. Also verwendete ich den Timer um 1 mal pro Sekunde die Queue abzufragen. Wenn eine Nachricht vorhanden ist, wird diese verarbeitet und aus der Queue gelöscht:
Und so sieht das im Einsatz aus:
Ich kann mir einige Szenarien für die Verwendung vorstellen. Wenn man z.B. eine Provisionierungs-App für Teamräume hat, könnte man so eine Queue Abfragen, welche eine Nachricht erhält, sobald der Provisionierungsvorgang abgeschlossen wurde, und man mit der Bearbeitung in der App fortfahren kann. Auch möglich wäre so z.B. eine Art Live-Chat oder aber ein Push-Notification-System. Der Azure Queue Konnektor ist allerdings ein Premium Connector, so dass jede NutzerIn, welche die App benutzt entsprechend lizenziert sein muss.
Beitrag teilen
Geschrieben von
Reto Stadelmann
Content Services Developer
Profil anzeigen