Handbuch: Erstellen serverloser Anwendungen

Heute legen wir einen Leitfaden für die Erstellung von Anwendungen ohne Server vor. Es enthält drei Hauptabschnitte: Erstellen einer serverlosen Logik, Einrichten von Triggern und Verwenden von Bindungen. Jetzt mitmachen!



Einführung


Stellen Sie sich vor, Sie arbeiten für ein Rolltreppenunternehmen, das stark in die Internet of Things-Technologie investiert hat, um Ihr Produkt lokal zu verfolgen. Sie steuern die Verarbeitung von Daten von Temperatursensoren auf den Antriebsmechanismen von Rolltreppen. Sie verfolgen die Temperaturdaten und fügen ein Flag hinzu, um anzuzeigen, dass die Temperatur des Antriebsmechanismus zu hoch ist. In nachgeschalteten Systemen können Sie anhand dieser Daten den Servicebedarf ermitteln.

Ihr Unternehmen empfängt Daten von Sensoren an verschiedenen Orten und von verschiedenen Rolltreppenmodellen. Diese Daten liegen in verschiedenen Formaten vor, darunter das Senden von Batchdateien, geplante Abfragen aus der Datenbank, Nachrichten in der Warteschlange und eingehende Daten vom Ereignis-Hub. Sie möchten einen wiederverwendbaren Dienst entwickeln, mit dem Sie Temperaturdaten aus all diesen Quellen verarbeiten können.

Wenn Sie solche Dienste mit herkömmlichen Strategien für die Unternehmensarchitektur entwickeln, müssen Sie die Serverinfrastruktur und ihre Wartung im Voraus berücksichtigen: Weisen Sie die erforderlichen Geräte zu, planen Sie die Installation, koordinieren Sie die Arbeit mit der IT-Abteilung, um sie zu verwalten usw. Serverless Computing ist eine Alternative. Mit Serverless Computing verwaltet der Cloud-Anbieter die Bereitstellung und Wartung der Infrastruktur, sodass Sie sich vollständig auf die Erstellung von Logikanwendungen konzentrieren können. Der Azure-Funktionsdienst ist eine Schlüsselkomponente des Azure Serverless Computing-Angebots, mit dem Sie Codefragmente oder Funktionen, die in Ihrer eigenen Programmiersprache geschrieben sind, selbst in der Cloud ausführen können.

Lernziele


In diesem Modul lernen Sie, wie Sie die folgenden Aufgaben ausführen:

  • Ermittlung der Eignung von Serverless Computing für geschäftliche Anforderungen.
  • Erstellen Sie eine Azure-Feature-Anwendung im Azure-Portal.
  • Ausführen einer Funktion mit Triggern.
  • Verfolgen und Testen von Azure-Funktionen im Azure-Portal

Ermittlung der Eignung von Serverless Computing für geschäftliche Anforderungen


Um herauszufinden, ob Serverless Computing angewendet werden sollte, geben wir Ihnen zunächst allgemeine Informationen zu diesem Konzept.

Was ist Serverless Computing?


Serverless Computing ist ein FaaS-Feature (Feature-as-a-Service) oder ein Microservice, der auf einer Cloud-Plattform gehostet wird. Die Geschäftslogik wird im Format von Funktionen ausgeführt, sodass Sie die Infrastruktur nicht manuell vorbereiten oder skalieren müssen. Das gesamte Infrastrukturmanagement wird vom Cloud-Dienstanbieter durchgeführt. Die Anwendung wird je nach Belastung automatisch vergrößert oder verkleinert. Azure bietet verschiedene Möglichkeiten zum Erstellen dieser Art von Architektur. Die beiden am häufigsten verwendeten Ansätze sind die Verwendung von Azure Logic Apps und Azure-Funktionen. In diesem Modul werden wir sie betrachten.

Was sind Azure-Funktionen?


Funktionen Azure ist eine serverlose Computerplattform. Entwickler können damit Geschäftslogik implementieren, die ausgeführt werden kann, ohne die Infrastruktur vorzubereiten. Funktionen sind strukturell gut skaliert und Sie zahlen nur für tatsächlich genutzte Ressourcen. Funktionscode kann in jeder geeigneten Sprache erstellt werden, einschließlich C #, F # und JavaScript. NuGet und NPM werden ebenfalls unterstützt, wodurch es möglich ist, viele gängige Bibliotheken in der Geschäftslogik zu verwenden.

Vorteile der Serverless Computing-Lösung


Serverless Computing ist eine großartige Option zum Hosten von Geschäftslogikcode in der Cloud. Mit serverlosen Diensten wie Azure-Funktionen können Sie Geschäftslogik in jeder Sprache erstellen, die zu Ihnen passt. Sie erhalten eine automatische Skalierung, müssen sich nicht um die Serververwaltung kümmern und zahlen nur für die tatsächlich verwendeten Ressourcen und nicht für die reservierte Zeit. Im Folgenden finden Sie einige weitere Funktionen der serverlosen Lösung, die Sie berücksichtigen müssen.

Mangel an überschüssiger Infrastrukturzuweisung


Angenommen, Sie haben Server für virtuelle Maschinen vorbereitet und ihnen genügend Ressourcen für Spitzenlasten bereitgestellt. In Zeiten geringer Arbeitsbelastung zahlen Sie wahrscheinlich für nicht genutzte Infrastruktur. Serverless Computing hilft bei der Lösung des Problems einer übermäßigen Ressourcenzuweisung, da die Skalierung automatisch durchgeführt wird und Sie nur für die aktive Arbeit der Funktion bezahlen.

Zustandslose Logik


Zustandslose Funktionen eignen sich hervorragend für Serverless Computing. Funktionsinstanzen werden auf Anfrage erstellt und gelöscht. Wenn eine Statusverfolgung erforderlich ist, kann diese im entsprechenden Speicherdienst gespeichert werden.

Event Management


Funktionen sind ereignisgesteuert. Dies bedeutet, dass sie nur als Reaktion auf ein Ereignis (Auslöser) ausgeführt werden, z. B. das Empfangen einer HTTP-Anforderung oder das Hinzufügen einer Nachricht zur Warteschlange. Trigger werden in der Funktionsdefinition konfiguriert. Dieser Ansatz vereinfacht die Codebasis erheblich und ermöglicht es Ihnen, nur Datenquellen (Trigger- / Eingabebindung) und Ziel (Ausgabebindung) zu deklarieren. Sie müssen nicht schreiben, um Ihren eigenen Code für die Arbeit mit Warteschlangen, Blobs, Hubs usw. zu erstellen. Sie müssen lediglich die Geschäftslogik erstellen.

Funktionen können in herkömmlichen Computerumgebungen verwendet werden.


Funktionen sind eine Schlüsselkomponente des Serverless Computing, dienen aber gleichzeitig als Computerplattform für die Ausführung aller Arten von Code. Wenn die Anwendung geändert werden muss, können Sie immer dasselbe Projekt in einer vertrauten Serverumgebung bereitstellen und so die Flexibilität erhalten, die Skalierung zu steuern, in virtuellen Netzwerken zu starten und sogar Funktionen vollständig zu isolieren.

Nachteile einer Serverless Computing-Lösung


Serverless Computing ist nicht immer optimal für das Hosting von Geschäftslogik. Im Folgenden sind einige der Funktionen aufgeführt, die sich auf Ihre Entscheidung auswirken können, Dienste im Serverless Computing zu hosten.

Vorlaufzeit


Standardmäßig verwenden Funktionen eine Wartezeit von 5 Minuten. Sie kann erhöht werden, jedoch nicht länger als 10 Minuten. Wenn die Funktion länger als 10 Minuten dauert, kann sie auf einer virtuellen Maschine gehostet werden. Wenn Ihr Dienst mit einer HTTP-Anforderung beginnt und Sie eine HTTP-Antwort erwarten, ist die Wartezeit auf 2,5 Minuten begrenzt. Und schließlich gibt es eine zusätzliche Möglichkeit, stabile Funktionen zu erstellen, um die Leistung mehrerer Funktionen ohne zeitliche Begrenzung zu orchestrieren.

Ausführungshäufigkeit


Das zweite Merkmal ist die Häufigkeit der Ausführung. Wenn erwartet wird, dass mehrere Clients die Funktion kontinuierlich gleichzeitig ausführen, ist es sinnvoll, die Verwendung zu bewerten und die Kosten für die entsprechende Verwendung der Funktionen zu berechnen. Vielleicht ist das Hosten eines Dienstes in einer virtuellen Maschine billiger.

Bei einer Skalierung alle 10 Sekunden kann nur eine Instanz der Funktionsanwendung erstellt werden, jedoch nicht mehr als 200 Instanzen insgesamt. Denken Sie daran, dass jede Instanz mehrere Ausführungen gleichzeitig ausführen kann, dh, es gibt keine Einschränkungen hinsichtlich des Datenverkehrs, den jede Instanz verarbeiten kann. Unterschiedliche Arten von Triggern haben unterschiedliche Skalierungsanforderungen. Untersuchen Sie den ausgewählten Trigger und die damit verbundenen Einschränkungen.

Erstellen Sie eine Feature-Anwendung im Azure-Portal


Für dieses Tutorial ist eine Sandbox erforderlich

Die Sandbox bietet freien Zugriff auf die Azure-Ressourcen, die Sie für dieses Lernprogramm benötigen. Ihr Azure-Abonnement wird nicht belastet.

Betritt den Sandkasten

Jetzt können Sie mit der Implementierung des Temperaturregelungsdienstes beginnen. Im vorherigen Modul haben Sie festgestellt, dass eine Lösung ohne Server am besten zur Lösung Ihrer Probleme geeignet ist. Jetzt erstellen wir eine Funktionsanwendung zum Speichern der Azure-Funktion.

Was ist eine Funktions-App?


Funktionen werden in einen Kontext gestellt, der als Funktionsanwendung bezeichnet wird. Mit Funktionsanwendungen können Sie Funktionen in Azure logisch gruppieren und strukturieren sowie Ressourcen berechnen. In unserem Beispiel erstellen Sie eine Funktionsanwendung zum Hosten des Temperaturregelungsdienstes für den Aufzugsantrieb. Um eine Feature-Anwendung zu erstellen, müssen Sie mehrere Entscheidungen treffen, einschließlich der Auswahl eines Serviceplans und eines geeigneten Speicherkontos.

Serviceplan auswählen


Funktionsanwendungen können einen von zwei Arten von Serviceplänen verwenden. Der erste dieser Typen ist ein verbrauchsabhängiger Serviceplan. Dieser Plan ist praktisch, wenn Sie die serverlose Azure-Anwendungsplattform verwenden. Ein verbrauchsabhängiger Serviceplan bietet eine automatische Skalierung, und die Zahlung wird nur für die Dauer der Funktionen berechnet. Mit einem verbrauchsabhängigen Serviceplan können Sie eine Wartezeit konfigurieren, um eine Funktion abzuschließen. Standardmäßig beträgt dieser Zeitraum 5 Minuten, kann jedoch auf 10 Minuten erhöht werden.

Der zweite Typ ist der Azure Application Service Plan. Dieser Plan vermeidet Wartezeiten, indem die Anwendung kontinuierlich auf der ausgewählten virtuellen Maschine ausgeführt wird. Wenn Sie einen Anwendungsdienstplan verwenden, müssen Sie die Ressourcen für die Anwendung verwalten, in der die Funktion ausgeführt wird. Genau genommen erlaubt dies uns nicht, den Plan als serverlos zu betrachten. Unter bestimmten Umständen ist es jedoch besser geeignet, beispielsweise wenn Funktionen kontinuierlich verwendet werden oder mehr Verarbeitungsleistung oder längere Ausführungszeit erfordern, als ein verbrauchsabhängiger Plan bieten kann.

Speicherkontoanforderungen


Die erstellte Funktionsanwendung muss an das Speicherkonto gebunden sein. Sie können ein vorhandenes Speicherkonto auswählen oder ein neues erstellen. Die Funktionsanwendung verwendet dieses Speicherkonto für interne Vorgänge, z. B. die Protokollierung der Funktionsausführung und die Verwaltung von Ausführungsauslösern. Wenn ein verbrauchsabhängiger Serviceplan verwendet wird, werden hier auch der Funktionscode und die Konfigurationsdateien gespeichert.

Erstellen einer Funktionsanwendung


Erstellen wir eine Feature-Anwendung im Azure-Portal.

Melden Sie sich beim Azure-Portal mit demselben Konto an, mit dem Sie die Sandbox aktiviert haben.

Klicken Sie oben links im Azure-Portal auf die Schaltfläche Ressource erstellen und wählen Sie Erste Schritte> Serverlose Funktionsanwendung, um die Spalte Erstellen für die Funktionsanwendung zu öffnen. Die gleiche Spalte kann über den Menüpunkt Berechnungen> Anwendungsfunktion geöffnet werden.



Wählen Sie einen global eindeutigen Anwendungsnamen. Es wird als Basis-URL Ihres Dienstes verwendet. Sie können es beispielsweise Rolltreppenfunktionen-xxxxxxx nennen und die Kreuze durch die Initialen und das Geburtsjahr ersetzen. Wenn dieser Name nicht global eindeutig ist, versuchen Sie es mit anderen Kombinationen. Gültige Zeichen sind a - z, 0–9 und -.

Wählen Sie das Azure-Abonnement aus, in dem Sie die Feature-App hosten möchten.

Wählen Sie eine vorhandene Ressourcengruppe mit dem Namen [Name der Sandbox-Ressourcengruppe] aus.

Wählen Sie Ihr Windows-Betriebssystem.

Wählen Sie als Platzierungsplan die Option Verbrauchsplan aus, der für die serverlose Zuordnung verwendet wird.

Wählen Sie in der Liste den geografischen Standort aus, der Ihnen am nächsten liegt. Im Arbeitssystem müssen Sie den Standort auswählen, der Ihren Kunden- oder Verbraucherfunktionen am nächsten liegt.

Mit einer kostenlosen Sandbox können Sie Ressourcen in einer Teilmenge der globalen Azure-Regionen erstellen. Wählen Sie beim Erstellen von Ressourcen eine Region aus der folgenden Liste aus:

  • Westliche USA 2
  • Mittlerer Westen der Vereinigten Staaten
  • Zentraler Süden der USA
  • Zentral USA
  • Ost-USA
  • Westeuropa
  • Südostasien
  • Ostjapan
  • Südbrasilien
  • Südostaustralien
  • Zentralindien

Wählen Sie für den Parameter Laufzeitstapel JavaScript aus der Dropdown-Liste aus, da in dieser Sprache in dieser Übung Beispiele für Funktionen implementiert werden.

Erstellen Sie ein Speicherkonto. Azure benennt es automatisch mit dem Namen der Anwendung. Sie können diesen Namen durch einen anderen ersetzen, der jedoch immer eindeutig ist.

Stellen Sie sicher, dass Azure Application Insights aktiviert ist, und wählen Sie die Region aus, die Ihnen (oder Ihren Kunden) am nächsten liegt.

Wählen Sie Erstellen. Die Bereitstellung dauert einige Minuten. Nach Abschluss erhalten Sie eine Benachrichtigung.

Überprüfen einer Azure-Feature-Anwendung


Wählen Sie im Menü auf der linken Seite des Azure-Portals die Option Ressourcengruppen aus. Sie sehen dann die Ressourcengruppe [Name der Sandbox-Ressourcengruppe] in der Liste der verfügbaren Gruppen.

.

Wählen Sie die Ressourcengruppe [Name der Sandbox-Ressourcengruppe] aus. Eine Liste der Ressourcen wird angezeigt, ähnlich wie im folgenden Bild.



Das hier als Anwendungsdienst bezeichnete Blitzelement ist die neue Anwendungsfunktion. Klicken Sie darauf, um die Details der neuen Funktion zu öffnen. Sie erhält eine öffentliche URL, die im Browser geöffnet werden kann, und stellt sicher, dass die Funktionsanwendung ordnungsgemäß funktioniert.

Sie können den Leitfaden weiterhin in unserem Microsoft Learn-Portal lesen .

Source: https://habr.com/ru/post/de430194/


All Articles