Web Scraping mit Azure Functions und Python
Serverless-Funktionen ermöglichen die automatisierte Datenanalyse im Internet, wie das Beispiel zum Web Scraping von COVID-19-Informationen verdeutlicht.
- Vladimir Poliakov
Azure Functions sind – vergleichbar mit AWS Lambda oder Google Cloud Functions – eventbasierte Serverless-Funktionen, die sich bedarfsabhängig ausführen lassen. Auslöser für eine Azure Function kann ein HTTP-Request für die Web-API-Schnittstelle sein. Als Trigger kommen aber auch ein eingehender IoT-Stream, eine Datenbankänderung oder das Ausführen zu einer vorgegebenen Zeit infrage.
Was sind Azure Functions?
Je nach Anforderung stellt der Anbieter der Azure Functions (Microsoft) die zugrundeliegenden Ressourcen der Cloud-Infrastruktur dynamisch bereit und skaliert sie proportional zur Nachfrage. Bei dieser dynamischen, bedarfsgesteuerten Bereitstellung der Serverless-Funktionen bezahlen Nutzer im Verbrauchstarif (Consumption Plan Hosting) nur für die Anzahl der Ausführungen, die Ausführungszeit und den Speicherverbrauch. Welche Kosten dabei entstehen können, zeigt das praktische Beispiel am Ende des Artikels.
Entwicklerinnen und Entwickler profitieren beim Einsatz von Serverless-Funktionen davon, sich keine Gedanken mehr über die Infrastruktur, also das Bereitstellen und Warten von Servern, machen zu müssen – stattdessen können sie sich vollständig auf den Development-Prozess ihrer Applikation konzentrieren. Allerdings sollten sie darauf achten, den Code nicht zu komplex zu gestalten, damit die Serverless-Funktion auch jederzeit schnell auf den Trigger beziehungsweise das auslösende Ereignis reagieren kann.
COVID-19: Ein Beispiel aus der Praxis
In der Regel kommen Azure Functions im Zusammenspiel mit anderen Cloud-Diensten zum Einsatz. Sie empfehlen sich aber auch in zwei beispielhaften Szenarien im Soloeinsatz:
- Zeitgesteuertes Web Scraping und Persistieren der Informationen in einer Cloud-Datenbank wie Cosmos DB für die spätere Verarbeitung oder Darstellung auf einem Dashboard (s. Abb. 1)
- Web-API eines KI-Modells (Azure Function getriggert per HTTP-Request)
Die Azure-Dokumentation beschreibt ausführlich das Erstellen einer Azure Function im Command Line Interface (CLI) und in Visual Studio Code. Dieser Artikel greift die Dokumentation auf und zeigt, wie sich eine Azure Function mit dem HTTP-Trigger in ein paar Handgriffen zu einem Web Scraper erweitern lässt. Danach erfolgt das Anbinden an Cosmos DB, um ihn anschließend als eine zeitgesteuerte Azure Function in der Cloud bereitzustellen. Dort sammelt sie täglich automatisiert Informationen aus dem Internet.