Arbeiten mit Azure Functions Core Tools

Mit Azure Functions Core Tools können Sie Ihre Funktionen über die Eingabeaufforderung oder das Terminal auf dem lokalen Computer entwickeln und testen. Die lokalen Funktionen können mit Azure-Livediensten verbunden werden, und Sie können die Funktionen unter Verwendung der vollständigen Functions-Runtime auf dem lokalen Computer debuggen. Sie können sogar eine Funktions-App in Ihrem Azure-Abonnement bereitstellen.

Hinweis

Kombinieren Sie die lokale Entwicklung und die Portalentwicklung nicht in der gleichen Funktions-App. Wenn Sie Funktionen über ein lokales Projekt erstellen und veröffentlichen, können Sie den Projektcode im Portal nicht verwalten oder ändern.

Beim Entwickeln von Funktionen auf Ihrem lokalen Computer und der anschließenden Veröffentlichung auf Azure mithilfe von Core Tools führen Sie diese grundlegenden Schritte aus:

Voraussetzungen

Die spezifischen Voraussetzungen für Core Tools hängen von den Features ab, die Sie verwenden möchten:

Veröffentlichen: Core Tools verwendet zurzeit entweder die Azure CLI oder Azure PowerShell, um sich mit Ihrem Azure-Konto zu authentifizieren. Dies bedeutet, dass Sie eines dieser Tools installieren müssen, um von Azure Functions Core Tools aus in Azure veröffentlichen zu können.

Erweiterungen installieren: Um Erweiterungen mithilfe von Core Tools manuell zu installieren, muss das .NET Core 3.1 SDK installiert sein. Das .NET Core SDK wird von Core Tools zum Installieren von Erweiterungen über NuGet verwendet. Für die Verwendung von Azure Functions-Erweiterungen müssen Sie nicht mit .NET vertraut sein.

Core Tools-Versionen

Es sind zwei Versionen von Azure Functions Core Tools verfügbar. Welche Version Sie verwenden, hängt von der lokalen Entwicklungsumgebung, der Sprachauswahl und der erforderlichen Unterstützung ab.

Wählen Sie unten eine Registerkarte „Version“ aus, um mehr über die einzelnen Versionen und detaillierte Installationsanweisungen zu erfahren:

Unterstützt Version 4.x der Functions-Runtime. Diese Versionen unterstützen Windows, macOS und Linux und verwenden plattformspezifische Paket-Manager oder npm für die Installation. Dies ist die empfohlene Version der Functions-Runtime und der Core Tools.

Sie können auf einem Computer immer nur jeweils eine Version der Core Tools installieren. Sofern nicht anders angegeben, gelten die Beispiele in diesem Artikel für Version 3.x.

Installieren von Azure Functions Core Tools

Azure Functions Core Tools umfasst eine Version der gleichen Runtime, auf der die Azure Functions-Runtime basiert, die Sie auf dem lokalen Entwicklungscomputer ausführen können. Zudem sind Befehle zum Erstellen von Funktionen, Herstellen einer Verbindung mit Azure und Bereitstellen von Functions-Projekten enthalten.

Ab Version 2.x werden Core Tools unter Windows, macOS und Linux ausgeführt.

In den folgenden Schritten wird ein Windows Installer (MSI) zum Installieren der Core Tools v4.x verwendet. Weitere Informationen zu anderen paketbasierten Installationsprogrammen finden Sie in der Infodatei zu Core Tools.

Laden Sie den Core Tools-Installer basierend auf Ihrer Version von Windows herunter, und führen Sie ihn aus:

Core Tools-Versionen wechseln

Wenn Sie zu einer anderen Version von Core Tools wechseln, sollten Sie denselben Paket-Manager wie bei der ursprünglichen Installation verwenden, um zu einer anderen Paketversion zu wechseln. Wenn Sie beispielsweise Core Tools Version 2.x mit npm installiert haben, sollten Sie den folgenden Befehl verwenden, um ein Upgrade auf Version 3.x auszuführen:

npm install -g azure-functions-core-tools@3 --unsafe-perm true

Wenn Sie das Windows-Installationsprogramm (MSI) zum Installieren von Core Tools auf Windows verwendet haben, sollten Sie die alte Version unter „Programme hinzufügen oder entfernen“ deinstallieren, bevor Sie eine andere Version installieren.

Erstellen eines lokalen Functions-Projekts

Ein Functions-Projektverzeichnis enthält unabhängig von der Sprache die folgenden Dateien und Ordner:

Dateiname BESCHREIBUNG
host.json Weitere Informationen finden Sie in der Referenz zu „host.json“.
local.settings.json Einstellungen, die bei lokaler Ausführung von Core Tools verwendet werden, einschließlich App-Einstellungen. Weitere Informationen finden Sie unter lokale Einstellungen.
.gitignore Verhindert, dass die Datei „local.settings.json“ versehentlich in einem Git-Repository veröffentlicht wird. Weitere Informationen finden Sie unter lokale Einstellungen.
.vscode\extensions.json Datei mit Einstellungen, die beim Öffnen des Projektordners in Visual Studio Code verwendet wird.

Weitere Informationen zum Functions-Projektordner finden Sie unter Azure Functions-Entwicklerhandbuch.

Führen Sie im Terminalfenster oder über eine Eingabeaufforderung den folgenden Befehl aus, um das Projekt und ein lokales Git-Repository zu erstellen:

func init MyFunctionProj

In diesem Beispiel wird ein Functions-Projekt in einem neuen MyFunctionProj-Ordner erstellt. Sie werden aufgefordert, eine Standardsprache für Ihr Projekt auszuwählen.

Die folgenden Überlegungen gelten für die Projektinitialisierung:

  • Wenn Sie die --worker-runtime-Option im Befehl nicht angeben, werden Sie aufgefordert, Ihre Sprache auszuwählen. Weitere Informationen finden Sie in der Referenz zu func init.

  • Wenn Sie keinen Projektnamen angeben, wird der aktuelle Ordner initialisiert.

  • Wenn Sie ihr Projekt in einem benutzerdefinierten Linux-Container veröffentlichen möchten, verwenden Sie die --docker-Option, um sicherzustellen, dass eine Dockerfile-Datei für Ihr Projekt generiert wird. Weitere Informationen finden Sie unter Erstellen einer Funktion unter Linux mithilfe eines benutzerdefinierten Images.

Für bestimmte Sprachen können zusätzliche Überlegungen erforderlich sein:

  • Mit Core Tools können Sie Funktions-App-Projekte für die .NET Runtime C#-Klassenbibliothekprojekte (.csproj) erstellen, die sowohl In-Process als auch ein isolierter Workerprozess sein können. Diese Projekte für Visual Studio oder Visual Studio Code werden während des Debuggens und beim Veröffentlichen in Azure kompiliert.

  • Verwenden Sie den --csx-Parameter, wenn Sie lokal mit C#-Skriptdateien (CSX-Dateien) arbeiten möchten. Dies sind die gleichen Dateien, die Sie beim Erstellen von Funktionen im Azure-Portal und bei Verwendung von Version 1.x der Core Tools erhalten. Weitere Informationen finden Sie in der Referenz zu func init.

Registrieren von Erweiterungen

Ab Runtimeversion 2.x werden Functions-Trigger und -Bindungen als .NET-Erweiterungspakete (NuGet) implementiert. Bei kompilierten C#-Projekten verweisen Sie einfach auf die NuGet-Erweiterungspakete für die spezifischen Trigger und Bindungen, die Sie verwenden. Für HTTP-Bindungen und Zeitgebertrigger sind keine Erweiterungen erforderlich.

Um die Entwicklungserfahrung für Nicht-C#-Projekte zu verbessern, können Sie mit Functions auf ein Erweiterungsbundle mit Versionsangabe in Ihrer Projektdatei „host.json“ verweisen. Erweiterungsbundles machen alle Erweiterungen für Ihre App verfügbar und beseitigen die Wahrscheinlichkeit von Paketkompatibilitätsproblemen zwischen Erweiterungen. Durch Erweiterungsbundles ist es auch nicht mehr notwendig, das .NET Core 3.1.x SDK zu installieren und sich mit der Datei „extensions.csproj“ zu befassen.

Erweiterungsbündel sind der empfohlene Ansatz für andere Funktionsprojekte als kompilierte C#-Projekte sowie C#-Skript. Für diese Projekte wird die Erweiterungsbundleeinstellung während der Initialisierung in der Datei host.json generiert. Wenn Bündel nicht aktiviert sind, müssen Sie die host.json-Datei des Projekts aktualisieren.

Der einfachste Weg, Bindungserweiterungen zu installieren, ist die Aktivierung von Erweiterungspaketen. Wenn Sie Pakete aktivieren, wird automatisch ein vordefinierter Satz von Erweiterungspaketen installiert.

Um Erweiterungspakete zu aktivieren, öffnen Sie die Datei „host.json“, und aktualisieren Sie ihren Inhalt entsprechend dem folgenden Code:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[2.*, 3.0.0)"
    }
}

Weitere Informationen finden Sie unter Registrieren von Bindungserweiterungen von Azure Functions.

In einem Nicht-.NET Projekt kann es vorkommen, dass Sie keine Erweiterungsbundles verwenden können, z. B. wenn Sie eine bestimmte Version einer Erweiterung als Ziel verwenden müssen, die nicht im Paket enthalten ist. In diesen seltenen Fällen können Sie die Core Tools verwenden, um die spezifischen Erweiterungspakete lokal zu installieren, die für Ihr Projekt erforderlich sind. Weitere Informationen finden Sie unter Installieren von Erweiterungen.

Lokale Einstellungen

Bei der Ausführung in einer Funktions-App in Azure werden die von Ihren Funktionen benötigten Einstellungen sicher in den App-Einstellungen gespeichert. Bei der lokalen Entwicklung werden diese Einstellungen hingegen zum Values-Objekt in der „local.settings.json“-Datei hinzugefügt. Die Datei „local.settings.json“ speichert auch Einstellungen, die von lokalen Entwicklungstools verwendet werden.

Da die Datei „local.settings.json“ möglicherweise Geheimnisse wie Verbindungszeichenfolgen enthält, sollten Sie sie niemals in einem Remoterepository speichern. Weitere Informationen zu lokalen Einstellungen finden Sie unter Datei für lokale Einstellungen.

Standardmäßig werden diese Einstellungen nicht automatisch migriert, wenn das Projekt in Azure veröffentlicht wird. Verwenden Sie die --publish-local-settings-Option bei der Veröffentlichung, um sicherzustellen, dass diese Einstellungen zur Funktions-App in Azure hinzugefügt werden. Werte im Abschnitt ConnectionStrings werden nie veröffentlicht.

Die Werte für Funktions-App-Einstellungen können auch im Code als Umgebungsvariablen gelesen werden. Weitere Informationen finden Sie im Abschnitt „Umgebungsvariablen“ dieser sprachspezifischen Referenzthemen:

Wenn keine gültige Speicherverbindungszeichenfolge für AzureWebJobsStorage festgelegt ist und der lokale Speicheremulator nicht verwendet wird, wird die folgende Fehlermeldung angezeigt:

Missing value for AzureWebJobsStorage in local.settings.json (Fehlender Wert für AzureWebJobsStorage in local.settings.json). Dies ist für alle Nicht-HTTP-Trigger erforderlich. Sie können „func azure functionapp fetch-app-settings <functionAppName>“ ausführen oder eine Verbindungszeichenfolge in „local.settings.json“ angeben.

Abrufen der Speicherverbindungszeichenfolgen

Auch wenn der Azurite-Speicheremulator für die Entwicklung verwendet wird, empfiehlt es sich, eine tatsächliche Speicherverbindung lokal auszuführen. Wenn Sie bereits ein Speicherkonto erstellt haben, können Sie eine gültige Speicherverbindungszeichenfolge mit einer der folgenden Methoden abrufen:

  1. Suchen Sie im Azure portal nach Speicherkonten, und wählen Sie diese Option aus.

    Auswählen von Speicherkonten im Azure-Portal

  2. Wählen Sie Ihr Speicherkonto aus, wählen Sie Zugriffsschlüssel unter Einstellungen aus, und kopieren Sie dann einen der Werte für Verbindungszeichenfolge.

    Kopieren der Verbindungszeichenfolge im Azure-Portal

Erstellen einer Funktion

Führen Sie den folgenden Befehl aus, um eine Funktion in einem vorhandenen Projekt zu erstellen:

func new

In Version 3.x/2.x werden Sie bei der Ausführung von func new aufgefordert, eine Vorlage in der Standardsprache Ihrer Funktions-App auszuwählen. Anschließend werden Sie aufgefordert, einen Namen für Ihre Funktion auszuwählen. Auch in Version 1.x müssen Sie auch die Sprache auswählen.

Sie können auch den Funktionsnamen und die Vorlage im func new-Befehl angeben. Im folgenden Beispiel wird die --template-Option verwendet, um einen HTTP-Trigger namens MyHttpTrigger zu erstellen:

func new --template "Http Trigger" --name MyHttpTrigger

In diesem Beispiel wird ein Queue Storage-Trigger mit dem Namen MyQueueTrigger erstellt:

func new --template "Azure Queue Storage Trigger" --name MyQueueTrigger

Weitere Informationen finden Sie unter dem func new-Befehl.

Lokales Ausführen von Funktionen

Um ein Functions-Projekt auszuführen, führen Sie den Functions-Host aus dem Stammverzeichnis Ihres Projekts aus. Der Host aktiviert Trigger für alle Funktionen im Projekt. Der start-Befehl variiert je nach Projektsprache.

func start

Hinweis

Version 1.x der Functions-Runtime erfordert stattdessen func host start. Weitere Informationen finden Sie in derReferenz zu Azure Functions Core Tools.

Wenn der Functions-Host startet, gibt er wie im folgenden Beispiel gezeigt die URL der HTTP-ausgelösten Funktionen aus:

Found the following functions:
Host.Functions.MyHttpTrigger

Job host started
Http Function MyHttpTrigger: http://localhost:7071/api/MyHttpTrigger

Wichtig

Bei lokaler Ausführung wird die Autorisierung für HTTP-Endpunkte nicht erzwungen. Das bedeutet, dass alle lokalen HTTP-Anforderungen wie authLevel = "anonymous" behandelt werden. Weitere Informationen finden Sie im Artikel über HTTP-Bindungen.

Übergeben von Testdaten an eine Funktion

Um Ihre Funktionen lokal zu testen, starten Sie den Functions-Host, und rufen Sie Endpunkte auf dem lokalen Server mithilfe von HTTP-Anforderungen auf. Der aufgerufene Endpunkt hängt vom Typ der Funktion ab.

Hinweis

Beispiele in diesem Thema verwenden das Tool cURL, um HTTP-Anforderungen vom Terminal oder einer Eingabeaufforderung zu senden. Sie können ein Tool Ihrer Wahl verwenden, um HTTP-Anforderungen an den lokalen Server zu senden. Das Tool cURL ist auf Linux-basierten Systemen sowie im Windows 10 Build 17063 und höher standardmäßig verfügbar. Unter einem älteren Windows müssen Sie das cURL-Tool erst herunterladen und installieren.

Allgemeinere Informationen zum Testen von Funktionen finden Sie unter Strategien zum Testen Ihres Codes in Azure Functions.

Über HTTP und Webhook ausgelöste Funktionen

Sie rufen die folgenden Endpunkte auf, um mit HTTP und Webhooks ausgelöste Funktionen lokal auszuführen:

http://localhost:{port}/api/{function_name}

Achten Sie darauf, den gleichen Servernamen und Port zu verwenden, auf die der Functions-Host lauscht. Dies können Sie der generierten Ausgabe entnehmen, wenn der Functions-Host gestartet wird. Sie können diese URL mit jeder HTTP-Methode aufrufen, die vom Trigger unterstützt wird.

Der folgende cURL-Befehl löst die Schnellstart-Funktion MyHttpTrigger von einer GET-Anforderung aus, wobei der name-Parameter in der Abfragezeichenfolge übergeben wird.

curl --get http://localhost:7071/api/MyHttpTrigger?name=Azure%20Rocks

Im folgenden Beispiel wird dieselbe Funktion über eine POST-Anforderung aufgerufen, die name im Hauptteil der Anforderung übergibt:

curl --request POST http://localhost:7071/api/MyHttpTrigger --data '{"name":"Azure Rocks"}'

Sie können GET-Anforderungen über einen Browser ausführen, indem Sie Daten in der Abfragezeichenfolge übergeben. Für alle anderen HTTP-Methoden müssen Sie cURL, Fiddler, Postman oder ein ähnliches HTTP-Testtool verwenden, das POST-Anforderungen unterstützt.

Nicht über HTTP ausgelöste Funktionen

Für alle Funktionen mit Ausnahme von HTTP- und Event Grid-Triggern können Sie Ihre Funktionen lokal mit REST testen, indem Sie einen speziellen Endpunkt aufrufen, der als Administrationsendpunkt bezeichnet wird. Wenn Sie diesen Endpunkt mit einer HTTP POST-Anforderung auf dem lokalen Server aufrufen, wird die Funktion ausgelöst.

Informationen zum lokalen Testen der durch Event Grid ausgelösten Funktionen finden Sie unter Lokales Testen mit Viewer-Web-App.

Optional können Sie Testdaten im Hauptteil der POST-Anforderung an die Ausführung übergeben. Diese Funktionalität ähnelt der Registerkarte Test im Azure-Portal.

Sie rufen den folgenden Administratorendpunkt zum Auslösen von Nicht-HTTP-Funktionen auf:

http://localhost:{port}/admin/functions/{function_name}

Wenn Sie Testdaten an den Administratorendpunkt einer Funktion übergeben möchten, müssen Sie die Daten im Hauptteil einer POST-Anforderungsnachricht bereitstellen. Der Nachrichtentext muss das folgende JSON-Format aufweisen:

{
    "input": "<trigger_input>"
}

Der Wert <trigger_input> enthält Daten in einem von der Funktion erwarteten Format. Das folgende cURL-Beispiel wird per POST an eine QueueTriggerJS-Funktion übergeben. In diesem Fall ist die Eingabe eine Zeichenfolge, die der in der Warteschlange erwarteten Nachricht entspricht.

curl --request POST -H "Content-Type:application/json" --data '{"input":"sample queue data"}' http://localhost:7071/admin/functions/QueueTrigger

Wenn Sie einen Administratorendpunkt in Ihrer Funktions-App in Azure aufrufen, müssen Sie einen Zugriffsschlüssel angeben. Weitere Informationen finden Sie unter Funktionszugriffsschlüssel.

Veröffentlichen in Azure

Die Azure Functions Core Tools unterstützen zwei Bereitstellungstypen:

Bereitstellungstyp Befehl BESCHREIBUNG
Projektdateien func azure functionapp publish Stellt Funktionsprojektdateien mithilfe der ZIP-Bereitstellung direkt in Ihrer Funktions-App bereit.
Kubernetes-Cluster func kubernetes deploy Stellt Ihre Linux-Funktions-App als benutzerdefinierten Docker-Container in einem Kubernetes-Cluster bereit.

Vor dem Veröffentlichen

Wichtig

Die Azure-Befehlszeilenschnittstelle oder Azure PowerShell muss lokal installiert sein, um von Core Tools aus Veröffentlichungsvorgänge in Azure durchführen zu können.

Ein Projektordner kann sprachspezifische Dateien und Verzeichnisse enthalten, die nicht veröffentlicht werden sollen. Ausgeschlossene Elemente werden in einer .funcignore-Datei im Stammprojektordner aufgelistet.

Sie müssen bereits eine Funktions-App im Azure-Abonnement erstellt haben, für die Sie den Code bereitstellen. Projekte, für die eine Kompilierung erforderlich ist, müssen so erstellt werden, dass die Binärdateien bereitgestellt werden können.

Informationen zum Erstellen einer Funktions-App über die Eingabeaufforderung oder ein Terminalfenster mithilfe der Azure-Befehlszeilenschnittstelle oder Azure PowerShell finden Sie unter Erstellen einer Funktions-App für die serverlose Ausführung.

Wichtig

Wenn Sie eine Funktions-App im Azure-Portal erstellen, verwendet sie automatisch Version 3.x der Functions-Runtime. Damit die Funktions-App Version 1.x der Laufzeit verwendet, befolgen Sie die Anweisungen unter Run on version 1.x (Ausführen unter Version 1.x). Sie können die Runtimeversion für eine Funktions-App, die über Funktionen verfügt, nicht ändern.

Bereitstellen von Projektdateien

Um Ihren lokalen Code in einer Funktions-App in Azure zu veröffentlichen, verwenden Sie den publish-Befehl:

func azure functionapp publish <FunctionAppName>

Die folgenden Überlegungen gelten für diese Art von Bereitstellung:

  • Bei der Veröffentlichung werden vorhandene Dateien in der Funktions-App überschrieben.

  • Verwenden Sie die --publish-local-settings-Option zum automatischen Erstellen von App-Einstellungen in Ihrer Funktions-App basierend auf Werten in der Datei „local.settings.json“.

  • Ein Remotebuild wird für kompilierte Projekte ausgeführt. Dies kann mithilfe der --no-build-Option gesteuert werden.

  • Ihr Projekt wird so bereitgestellt, dass es aus dem Bereitstellungspaket ausgeführt wird. Dieser empfohlene Bereitstellungsmodus kann mithilfe der --nozip-Option deaktiviert werden.

  • Java verwendet Maven, um das lokale Projekt in Azure zu veröffentlichen. Verwenden Sie stattdessen den folgenden Befehl zum Veröffentlichen in Azure: mvn azure-functions:deploy. Azure-Ressourcen werden während der ersten Bereitstellung erstellt.

  • Sie erhalten eine Fehlermeldung, wenn Sie versuchen, an einen <FunctionAppName> zu veröffentlichen, der in Ihrem Abonnement nicht vorhanden ist.

Kubernetes-Cluster

Mit Functions können Sie Ihr Functions-Projekt auch für die Ausführung in einem Docker-Container definieren. Verwenden Sie die --docker-Option von func init, um eine Dockerfile-Datei für Ihre spezifische Sprache zu generieren. Diese Datei wird dann beim Erstellen eines bereitzustellenden Containers verwendet. Informationen zum Veröffentlichen eines benutzerdefinierten Containers in Azure ohne Kubernetes finden Sie unter Erstellen einer Funktion unter Linux mithilfe eines benutzerdefinierten Containers.

Core Tools können verwendet werden, um Ihr Projekt als benutzerdefiniertes Containerimage in einem Kubernetes-Cluster bereitzustellen.

Der folgende Befehl verwendet die Dockerfile-Datei, um einen Container zu generieren und in einem Kubernetes-Cluster bereitzustellen.

func kubernetes deploy --name <DEPLOYMENT_NAME> --registry <REGISTRY_USERNAME> 

Weitere Informationen finden Sie unter Bereitstellen einer Funktions-App in Kubernetes.

Installieren von Erweiterungen

Wenn Sie keine Erweiterungsbündel verwenden können, können Sie Azure Functions Core Tools lokal nutzen, um die für Ihr Projekt erforderlichen Erweiterungspakete zu installieren.

Wichtig

Erweiterungen können nicht explizit in einer Funktions-App mit aktivierten Erweiterungspaketen installiert werden. Entfernen Sie den Abschnitt extensionBundle in host.json, bevor Sie Erweiterungen explizit installieren.

Die folgenden Elemente beschreiben einige Gründe, aus denen Erweiterungen möglicherweise manuell installiert werden müssen:

  • Sie müssen auf eine bestimmte Version einer Erweiterung zugreifen, die nicht in einem Paket verfügbar ist.
  • Sie müssen auf eine benutzerdefinierte Erweiterung zugreifen, die nicht in einem Paket verfügbar ist.
  • Sie müssen auf eine bestimmte Kombination von Erweiterungen zugreifen, die nicht in einem einzelnen Paket verfügbar ist.

Bei der expliziten Installation von Erweiterungen wird die .NET-Projektdatei „extensions.csproj“ zum Stamm Ihres Projekts hinzugefügt. Diese Datei definiert die von Ihren Funktionen benötigten NuGet-Pakete. Sie können zwar mit den NuGet-Paketverweisen in dieser Datei arbeiten, mit Core Tools können Erweiterungen jedoch installiert werden, ohne diese C#-Projektdatei manuell bearbeiten zu müssen.

Es gibt verschiedene Möglichkeiten, um Core Tools zum Installieren der erforderlichen Erweiterungen in Ihrem lokalen Projekt zu verwenden.

Installieren aller Erweiterungen

Verwenden Sie den folgenden Befehl, um automatisch alle Erweiterungspakete hinzuzufügen, die von den Bindungen in Ihrem lokalen Projekt verwendet werden:

func extensions install

Der Befehl liest die Datei function.json, um zu ermitteln, welche Pakete Sie benötigen, installiert diese und erzeugt das Erweiterungenprojekt (extensions.csproj) neu. Er fügt alle neuen Bindungen an die aktuelle Version hinzu, aktualisiert aber keine vorhandenen Bindungen. Verwenden Sie die Option --force, um vorhandene Bindungen beim Installieren neuer auf die neueste Version zu aktualisieren. Weitere Informationen finden Sie unter dem func extensions install-Befehl.

Verwendet Ihre Funktions-App Bindungen oder NuGet-Pakete, die von Core Tools nicht erkannt werden, müssen Sie die jeweilige Erweiterung manuell installieren.

Installieren einer bestimmten Erweiterung

Verwenden Sie den folgenden Befehl, um ein bestimmtes Erweiterungspaket mit einer bestimmten Version zu installieren (in diesem Fall die Speichererweiterung):

func extensions install --package Microsoft.Azure.WebJobs.Extensions.Storage --version 5.0.0

Sie können diesen Befehl verwenden, um jedes kompatible NuGet-Paket zu installieren. Weitere Informationen finden Sie unter dem func extensions install-Befehl.

Überwachen von Funktionen

Die empfohlene Methode zum Überwachen der Ausführung Ihrer Funktionen ist die Integration in Azure Application Insights. Sie können auch Ausführungsprotokolle an Ihren lokalen Computer streamen. Weitere Informationen finden Sie unter Überwachen von Azure Functions.

Application Insights-Integration

Application Insights-Integration sollte standardmäßig aktiviert sein, wenn Sie Ihre Funktions-App im Azure-Portal erstellen. Wenn Ihre Funktions-App aus irgendeinem Grund nicht mit einer Application Insights-Instanz verbunden ist, lässt sich diese Integration einfach über das Azure-Portal durchführen. Weitere Informationen finden Sie unter Aktivieren der Application Insights-Integration.

Aktivieren von Streamingprotokollen

Sie können in einer Befehlszeilensitzung auf Ihrem lokalen Computer einen Stream von Protokolldateien anzeigen, die von Ihren Funktionen generiert werden.

Integriertes Protokollstreaming

Verwenden Sie denfunc azure functionapp logstream-Befehl, um den Empfang von Streamingprotokollen einer bestimmten in Azure ausgeführten Funktions-App wie im folgenden Beispiel gezeigt zu starten:

func azure functionapp logstream <FunctionAppName>

Hinweis

Integriertes Protokollstreaming ist in Core Tools für Funktions-Apps noch nicht aktiviert, die unter Linux in einem Verbrauchsplan ausgeführt werden. Für diese Hostingpläne müssen Sie stattdessen Live Metrics Stream verwenden, um die Protokolle nahezu in Echtzeit anzuzeigen.

Live Metrics Stream

Sie können auch Live Metrics Stream für Ihre Funktions-App in einem neuen Browserfenster anzeigen, indem Sie die Option --browser wie im folgenden Beispiel einschließen:

func azure functionapp logstream <FunctionAppName> --browser

Diese Art von Streamingprotokollen erfordert, dass die Application Insights-Integration für Ihre Funktions-App aktiviert ist.

Nächste Schritte

Erfahren Sie, wie Sie entwickeln, testen und veröffentlichen von Azure-Funktionen mithilfe der Kerntools von Azure Functions. Azure Functions Core Tools ist ein Open Source-Programm und wird auf GitHub gehostet. Um einen Fehler zu melden oder ein Feature anzufordern, öffnen Sie ein GitHub-Problem.