Übung: Veröffentlichen einer Funktion in Azure mithilfe der Core Tools

Abgeschlossen

In dieser Übung erstellen Sie eine Funktions-App in Azure und veröffentlichen unser Projekt.

Erstellen einer Funktions-App

Wichtig

Die Vorgehensweise in dieser Lektion basiert auf den in Lektion 3 ausgeführten Schritten. Die Sandbox für dieses Modul muss aktiv sein. Mit der Sandbox verfügen Sie über einen kostenlosen, temporären Zugriff auf Azure und die Azure CLI.

Die Azure Cloud Shell-Instanz muss bereits bei Ihrem Konto angemeldet und konfiguriert sein. Ist die Sandbox nicht aktiv, verfügen Sie auch nicht über den Zugriff, die Ressourcen und die Ausgabe, die Sie benötigen. Gehen Sie zurück zu Lektion 3, und schließen Sie diese ab.

Bevor Sie Ihren Code mithilfe der Core Tools in einer Funktions-App veröffentlichen können, müssen Sie die App in Azure mithilfe der Azure CLI in Cloud Shell erstellen.

Führen Sie die folgenden Befehle in Cloud Shell aus, um eine Funktions-App in Azure zu erstellen.

RESOURCEGROUP="<rgn>[sandbox resource group]</rgn>"
STORAGEACCT=learnstorage$(openssl rand -hex 5)
FUNCTIONAPP=learnfunctions$(openssl rand -hex 5)

az storage account create \
  --resource-group "$RESOURCEGROUP" \
  --name "$STORAGEACCT" \
  --kind StorageV2 \
  --location centralus

az functionapp create \
  --resource-group "$RESOURCEGROUP" \
  --name "$FUNCTIONAPP" \
  --storage-account "$STORAGEACCT" \
  --runtime node \
  --consumption-plan-location centralus \
  --functions-version 4

Diese Befehle bewirken Folgendes:

  • Mit den drei ersten Zeilen werden Shellvariablen mit Werten erstellt, die in den folgenden Befehlen wiederholt verwendet werden.

    • Als Ressourcengruppe geben Sie die Gruppe an, die von der Sandbox für Sie erstellt wurde. Dies sollte bereits der richtige Wert sein, der auf Ihrer aktuellen Sandbox basiert.
    • Das Speicherkonto und die Namen der Funktions-App enthalten $(openssl rand -hex 5), wodurch eine zufällige, aus fünf Zeichen bestehende Zeichenfolge generiert wird, um sicherzustellen, dass die Namen die Anforderung der globalen Eindeutigkeit sowie andere Anforderungen an die Dienstbenennung erfüllen.
  • az storage account create erstellt ein Azure-Speicherkonto, das von der Funktions-App verwendet wird. Ein Speicherkonto ist eine separate Azure-Ressource, die erstellt werden muss, bevor die Funktions-App erstellt werden kann.

  • az functionapp create erstellt die Funktions-App. Ihre neue App verwendet die node-Runtime (JavaScript), die serverlos in einem Verbrauchshostingplan ausgeführt wird.

Hinweis

Der Befehl az functionapp create versucht außerdem, automatisch eine Application Insights-Instanz für die Überwachung von Ausführungen in Ihrer Funktions-App zu erstellen. Da arbeitsbereichsbasierte Application Insights-Ressourcen derzeit nicht in der Sandbox gehostet werden können, funktionieren Ihre Funktionen, aber die Ausführungsprotokolle werden nicht an Application Insights gesendet.

Veröffentlichen in Azure

Nachdem Sie nun Ihre Funktions-App in Azure erstellt haben, können Sie das Projekt mit den Core Tools veröffentlichen.

Führen Sie die folgenden Befehle in Cloud Shell aus, um die Veröffentlichung auszuführen. Führen Sie zuerst cd aus, um sicherzustellen, dass Sie sich vor der Veröffentlichung noch immer im Funktionsprojektordner befinden.

cd ~/loan-wizard
func azure functionapp publish "$FUNCTIONAPP" --force

Hinweis

Wenn dieser Befehl einen Fehler anzeigt, dass Ihre App nicht gefunden wurde, warten Sie zwei Minuten, und versuchen Sie es dann noch mal. Die Erstellung neuer Funktions-Apps nimmt einige Sekunden in Anspruch. Erst danach werden sie von den Core Tools erkannt.

Außerdem fügen Sie --force an den Befehl an, um den Versionskonflikt der Funktions-App zu aktualisieren.

Anders als in der vorherigen Übung, in der Sie Ihre Funktion vorübergehend lokal über das Core Tools-Toolset gehostet haben, befindet sich Ihre Funktion nun im Web. Sie bleibt global verfügbar, bis die Sandbox für dieses Tutorial abläuft. Da der HTTP-Endpunkt mit der Autorisierungsstufe anonymous definiert wurde, kann jeder im Internet darauf zugreifen.

Ausführen der Funktion

Ihre Funktion wurde nun in Azure veröffentlicht und kann von überall aus aufgerufen werden. Als eine durch HTTP ausgelöste Funktion, die auf GET-Anforderungen antwortet, kann sie in einem Browser ausgeführt werden.

  1. Führen Sie den folgenden Befehl aus, um die Anforderungs-URL abzurufen:

    func azure functionapp list-functions "$FUNCTIONAPP" --show-keys
    
  2. Fügen Sie die URL aus der Ausgabe in eine neue Browserregisterkarte ein. Sie sehen die gleiche Ausgabe, die Sie beim lokalen Ausführen der Funktion beobachtet haben, ohne die richtigen Parameter für die Abfragezeichenfolge bereitzustellen. Wenn Sie die Autorisierungsstufe anonymous verwenden, sind keine Schlüssel in der Ausgabe enthalten.

  3. Fügen Sie ?principal=5000&rate=.035&term=36 am Ende der URL hinzu, und drücken Sie die EINGABETASTE. Achten Sie darauf, den code-Parameter beizubehalten, falls vorhanden. Das zurückgegebene Ergebnis ist wie erwartet 6300.000000000001.