Azure Functions – jetzt noch besser für Python- und JavaScript-Entwickler

Veröffentlicht am 4 Dezember, 2018

Principal PM Manager, Azure Functions

Mithilfe serverloser Technologien können sich Entwickler noch mehr auf die verschiedenen Aspekte der Geschäftslogik in ihren Apps konzentrieren, ohne sich mit der Verwaltung der Infrastruktur auseinandersetzen zu müssen. Nach der Bekanntgabe der allgemeinen Verfügbarkeit von Azure Functions 2.0 haben wir die neue plattformübergreifende Azure Functions-Hostruntime weiter verbessert, um noch mehr Entwicklern die Arbeit zu erleichtern – durch Unterstützung neuer Sprachen und neue Hostingoptionen für Azure Functions.

Wir freuen uns, heute bekannt geben zu können, dass die Python-Unterstützung in Azure Functions jetzt in der Public Preview ist und Sie Python-Funktions-Apps unter unserem neuen Linux-Verbrauchstarif veröffentlichen und damit eine serverlose Hostingoption mit ausführungsbasierter Bezahlung nutzen können. Dieser Linux-Verbrauchstarif steht als Hostingoption auch für JavaScript-Funktions-Apps zur Verfügung. Um JavaScript-Entwicklern darüber hinaus die Möglichkeit zu geben, serverlose Workflows programmgesteuert orchestrieren zu können, machen wir auch die Erweiterung JavaScript Durable Functions für die Azure Functions-Runtime allgemein verfügbar. Sie kann damit auch in Produktionsworkloads zum Einsatz kommen. Bei einer Lösung mit einer serverlosen API können Sie die Plattformunterstützung für ordnungsgemäße API-Entwurfs- und -Verwaltungsmuster über den neuen Verbrauchstarif für API Management nutzen. Durch eine wachsende Anzahl von Azure Functions-Funktionen wird die Wiederverwendung von Code in unterschiedlichen Communitys auch in der Produktion immer vorteilhafter. Aus diesem Grund haben wir die serverlose Communitybibliothek erstellt, in der vordefinierte Open-Source-Komponenten gehostet werden. Im Folgenden finden Sie weitere Einzelheiten zu diesen neuen Funktionen.

Hosten von Funktionen unter dem neuen Linux-Verbrauchstarif (Public Preview)

Azure Functions unterstützt jetzt das serverlose Hosting unter Linux über einen Verbrauchstarif – bisher war die Bereitstellung unter Linux nur bei Ausführung eines App Service-Plans möglich. Das neueste Release erlaubt die Bereitstellung von Funktionen für das Betriebssystem Linux mit einer dynamischen Skalierung anhand einer tief greifenden Analyse von Ereignisaktivitäten und einem serverlosen Modell mit ausführungsbasierter Bezahlung. Kunden, die unter der Mac- oder Linux-Plattform entwickeln, können plattformspezifische Übersetzungen vermeiden, indem sie einen nahtlosen Umstieg auf das Linux-Hosting in der Cloud vornehmen. Das Hosting unter Linux bedeutet auch, dass die unter Linux verfügbaren Bibliotheken nun auch von Ihrem Funktionscode genutzt werden können.

Mit dieser neuen Hostingoption wird auch der Weg für eine zukünftige weiterführende Abstraktion von Infrastrukturkonzepten bereitet, indem Funktions-Apps auf der Plattform mit der höchsten Verbreitung für die jeweilige Programmiersprache platziert werden. So hosten wir Python z.B. standardmäßig im Linux-Verbrauch. Weitere Informationen zum Linux-Verbrauchshosting finden Sie in der Dokumentation.

Entwickeln von Python-Funktionen (Public Preview)

Azure Functions funktioniert jetzt mit Python! Seit heute können Sie Ihre Funktionen mit Python 3.6 (CPython) auf Basis der Functions 2.0-Runtime und unter einer Linux-basierten Hostingplattform schreiben. Dies eröffnet zahlreiche Möglichkeiten z.B. für die Datenverarbeitung, für Workloads zum maschinellen Lernen und für Automatisierungsskripts. All diese Dinge waren bisher nur schwierig als serverlose FaaS-Lösungen zu implementieren.

Die neue Python-Runtime nutzt ebenfalls das einzigartige Functions-Programmiermodell, sodass Sie Ihre Python-Skripts einfach nur importieren müssen. Sämtliche Abhängigkeiten können Sie dann im Standardformat für Anforderungen verwalten. Wie immer stehen dabei zahlreiche Trigger und Bindungen zur Verfügung, die es Ihnen ermöglichen, nahtlose Verbindungen mit Datenquellen auf Cloudebene und Messagingdiensten wie Azure Storage, Cosmos DB, Service Bus, Event Hubs und Event Grid herzustellen, indem Sie einfach Methodenattribute einsetzen.

Python-Codebeispiel

Als Python-Entwickler können Sie Ihre Funktionen lokal erstellen, debuggen und testen – und zwar auf Mac-, Linux- oder Windows-Computern. Mit den Azure Functions Core Tools (Befehlszeilenschnittstelle) können Sie Triggervorlagen verwenden und direkt in Azure veröffentlichen – Konfiguration und Build werden automatisch gehandhabt.

Darüber hinaus können Sie die Azure Functions-Erweiterung für Visual Studio Code sogar als eng integrierte grafische Benutzeroberfläche zum Erstellen, Debuggen, Verwalten und Bereitstellen Ihrer Funktionen direkt aus dem Code-Editor heraus nutzen. In Kombination mit der Python-Erstellungserweiterung für VS Code steht Ihnen so eine erstklassige serverlose Entwicklungsumgebung für Python auf jeder beliebigen Plattform zur Verfügung.

Python-Erstellungserweiterung für VS Code

Für die ersten Schritte führen Sie dieses Tutorial aus, in dem Sie Ihre erste serverlose Python-Funktion erstellen und veröffentlichen. Wir bieten auch ein Webinar an, in dem Sie etwas über die Entwicklung mit Azure Functions und Python sowie über die damit nun möglichen Szenarien erfahren – also registrieren Sie sich noch heute.

Dieses Feature befindet sich derzeit noch in der Vorschau, daher sollten Sie auch die Diskussion auf GitHub verfolgen. Dort können Sie Feedback geben und erhalten weitere Informationen zu zukünftigen Verbesserungen und Features.

Orchestrieren serverloser JavaScript-Workflows mit Durable Functions (allgemein verfügbar)

Orchestrieren Sie Ihre serverlosen Workflows programmgesteuert über die Durable Functions-Erweiterung für die Azure Functions-Runtime. Mit der allgemeinen Verfügbarkeit wird nun auch JavaScript für Produktionsworkloads unterstützt. Mit Durable Functions können Entwickler komplexe zustandsbehaftete Koordinationsprobleme in serverlosen Anwendungen vereinfachen, indem sie die Workflows im Code definieren, anstatt JSON-Schemas oder einen visuellen Designer zu verwenden. Dieses Release ermöglicht neue Szenarien für Node.js- und JavaScript-Entwickler und folgt einigen Entwicklungsmustern wie Funktionsverkettung, Fan-Out/Fan-In (im Beispiel unten) oder menschlicher Interaktion. Die ersten Schritte können Sie in diesem Schnellstart erlernen. Anschließend können Sie direkt mit dem Erstellen zustandsbehafteter Workloads mithilfe von JavaScript und Durable Functions beginnen.

Zustandsbehaftete Workloads mit JavaScript und Durable Functions

Verwalten serverloser APIs mit API Management

Häufig erstellen unsere Kunden serverlose APIs mit Azure Functions für ihre Endpunkte. Dabei nutzen sie HTTP- oder Ereignisauslöser sowie die einfachere Integration mit Daten- und Messagingdiensten über Bindungen. Beim Erstellen von APIs müssen viele Dinge beachtet werden, z.B. die Authentifizierung und Autorisierung von Anforderungen, die Durchsetzung von Ratenbegrenzungen und Kontingenten, die Umwandlung von Anforderungen und Antworten, die Protokollierung und Nachverfolgung und die Versionsverwaltung.

Azure API Management kann all diese Aufgaben zur Vermittlung von API-Anforderungen erledigen – bisher jedoch ausschließlich über einen festen Preis, der nicht dem ausführungsbasierten Bezahlmodell entsprach, das Azure Functions-Kunden für ihre Lösungen bevorzugen.

Ab heute können Sie den neuen Verbrauchstarif auswählen, wenn Sie eine neue API Management-Instanz erstellen. Dieser neue Tarif ist praktisch eine Variante von API Management, die speziell nach den serverlosen Konzepten der anforderungsbasierten und automatisierten Skalierung entwickelt und implementiert wurde. In diesem Blogbeitrag erfahren Sie mehr zum neuen Verbrauchstarif und können direkt von den Vorteilen der API-Verwaltung für Ihre serverlosen Back-Ends mit Azure Functions profitieren.

Entwickeln mit der serverlosen Communitybibliothek

Die serverlose Communitybibliothek umfasst eine Reihe von vordefinierten Open-Source-Komponenten, die auf allgemeinen Anwendungsfällen mit Azure Functions und Logic Apps basieren. Diese Beispiele sind bereits fertig erstellt und können im gewünschten Azure-Abonnement bereitgestellt werden, sodass Entwickler diese Komponenten direkt und ohne weitere Konfiguration oder Einrichtung nutzen können – und damit Zeit sparen und die Produktivität erhöhen. Sehen Sie sich die verfügbaren Beispiele, z.B. zum Verarbeiten von Zahlungen mit Stripe oder zum Hinzufügen von künstlicher Intelligenz mit Cognitive Services, in der serverlosen Communitybibliothek an. Auf GitHub können Sie gerne auch eigene Komponenten beisteuern.

Serverlose Bibliothek

Zusammenfassung

Probieren Sie diese neuen Funktionen doch einmal aus, und sagen Sie uns, was Sie davon halten! Wir würden gerne erfahren, welche Ideen Sie für die neuen Azure Functions-Features haben. Nutzen Sie dafür einfach das Benutzerfeedback für Functions. Falls Sie auf Probleme mit Azure Functions stoßen, melden Sie uns diese bitte im GitHub-Repository von Azure Functions. Sie können das Azure Functions-Team aber natürlich auch jederzeit auf Twitter unter @AzureFunctions erreichen.