Arbeiten mit Azure Functions Core ToolsWork with 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.Azure Functions Core Tools lets you develop and test your functions on your local computer from the command prompt or terminal. 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.Your local functions can connect to live Azure services, and you can debug your functions on your local computer using the full Functions runtime. Sie können sogar eine Funktions-App in Ihrem Azure-Abonnement bereitstellen.You can even deploy a function app to your Azure subscription.

Wichtig

Kombinieren Sie die lokale Entwicklung und die Portalentwicklung nicht in der gleichen Funktions-App.Do not mix local development with portal development in the same function app. Wenn Sie Funktionen über ein lokales Projekt erstellen und veröffentlichen, sollten Sie nicht versuchen, den Projektcode im Portal zu verwalten oder zu ändern.When you create and publish functions from a local project, you should not try to maintain or modify project code in the portal.

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:Developing functions on your local computer and publishing them to Azure using Core Tools follows these basic steps:

Core Tools-VersionenCore Tools versions

Es sind drei Versionen der Azure Functions Core Tools verfügbar.There are three versions of Azure Functions Core Tools. Welche Version Sie verwenden, hängt von der lokalen Entwicklungsumgebung, der Sprachauswahl und der erforderlichen Unterstützung ab:The version you use depends on your local development environment, choice of language, and level of support required:

Sie können auf einem Computer immer nur jeweils eine Version der Core Tools installieren.You can only install one version of Core Tools on a given computer. Sofern nicht anders angegeben, gelten die Beispiele in diesem Artikel für Version 3.x.Unless otherwise noted, the examples in this article are for version 3.x.

VoraussetzungenPrerequisites

Azure Functions Core Tools verwendet zurzeit entweder die Azure CLI oder Azure PowerShell, um sich mit Ihrem Azure-Konto zu authentifizieren.Azure Functions Core Tools currently depends on either the Azure CLI or Azure PowerShell for authenticating with your Azure account. Dies bedeutet, dass Sie eines dieser Tools installieren müssen, um von Azure Functions Core Tools aus in Azure veröffentlichen zu können.This means that you must install one of these tools to be able to publish to Azure from Azure Functions Core Tools.

Installieren von Azure Functions Core ToolsInstall the 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.Azure Functions Core Tools includes a version of the same runtime that powers Azure Functions runtime that you can run on your local development computer. Zudem sind Befehle zum Erstellen von Funktionen, Herstellen einer Verbindung mit Azure und Bereitstellen von Functions-Projekten enthalten.It also provides commands to create functions, connect to Azure, and deploy function projects.

Version 3.x und 2.xVersion 3.x and 2.x

Die Tools der Version 3.x/2.x verwenden die Azure Functions-Runtime, die auf .NET Core basiert.Version 3.x/2.x of the tools uses the Azure Functions runtime that is built on .NET Core. Diese Version wird auf allen Plattformen unterstützt, die von .NET Core unterstützt werden, einschließlich Windows, macOS und Linux.This version is supported on all platforms .NET Core supports, including Windows, macOS, and Linux.

Wichtig

Sie können auf das Installieren des .NET Core SDK verzichten, wenn Sie Erweiterungsbundles verwenden.You can bypass the requirement for installing the .NET Core SDK by using extension bundles.

Die folgenden Schritte verwenden einen Windows Installer (MSI) zum Installieren der Core Tools v3.x.The following steps use a Windows installer (MSI) to install Core Tools v3.x. Weitere Informationen zu anderen paketbasierten Installationsprogrammen, die für die Installation von Core Tools v2.x erforderlich sind, finden Sie in der Infodatei zu Core Tools.For more information about other package-based installers, which are required to install Core Tools v2.x, see the Core Tools readme.

  1. Laden Sie den Core Tools-Installer basierend auf Ihrer Version von Windows herunter, und führen Sie ihn aus:Download and run the Core Tools installer, based on your version of Windows:

  2. Wenn Sie nicht beabsichtigen, Erweiterungsbundles zu verwenden, installieren Sie das .NET Core 3.x SDK für Windows.If you don't plan to use extension bundles, install the .NET Core 3.x SDK for Windows.

Erstellen eines lokalen Functions-ProjektsCreate a local Functions project

Ein Functions-Projektverzeichnis enthält die Dateien host.json und local.settings.json sowie Unterordner, die den Code für einzelne Funktionen enthalten.A Functions project directory contains the files host.json and local.settings.json, along with subfolders that contain the code for individual functions. Dieses Verzeichnis ist das Äquivalent zu einer Funktions-App in Azure.This directory is the equivalent of a function app in Azure. Weitere Informationen zur Azure Functions-Ordnerstruktur finden Sie unter Azure Functions: Entwicklerhandbuch.To learn more about the Functions folder structure, see the Azure Functions developers guide.

In Version 3.x/2.x müssen Sie eine Standardsprache für das Projekt auswählen, wenn es initialisiert wird.Version 3.x/2.x requires you to select a default language for your project when it is initialized. In Version 3.x/2.x werden für alle hinzugefügten Funktionen Vorlagen mit der Standardsprache verwendet.In version 3.x/2.x, all functions added use default language templates. In Version 1.x geben Sie die Sprache bei jedem Erstellen einer Funktion an.In version 1.x, you specify the language each time you create a function.

Führen Sie im Terminalfenster oder über eine Eingabeaufforderung den folgenden Befehl aus, um das Projekt und ein lokales Git-Repository zu erstellen:In the terminal window or from a command prompt, run the following command to create the project and local Git repository:

func init MyFunctionProj

Wichtig

Java verwendet einen Maven-Archetyp, um das lokale Functions-Projekt zusammen mit der ersten durch HTTP ausgelösten Funktion zu erstellen.Java uses a Maven archetype to create the local Functions project, along with your first HTTP triggered function. Verwenden Sie den folgenden Befehl, um das Java-Projekt zu erstellen: mvn archetype:generate -DarchetypeGroupId=com.microsoft.azure -DarchetypeArtifactId=azure-functions-archetype.Use the following command to create your Java project: mvn archetype:generate -DarchetypeGroupId=com.microsoft.azure -DarchetypeArtifactId=azure-functions-archetype. Ein Beispiel für die Verwendung des Maven-Archetyps finden Sie im Befehlszeilen-Schnellstart.For an example using the Maven archetype, see the Command line quickstart.

Wenn Sie einen Projektnamen angeben, wird ein neuer Ordner mit diesem Namen erstellt und initialisiert.When you provide a project name, a new folder with that name is created and initialized. Andernfalls wird der aktuelle Ordner initialisiert.Otherwise, the current folder is initialized.
In Version 3.x/2.x müssen Sie beim Ausführen des Befehls eine Runtime für das Projekt auswählen.In version 3.x/2.x, when you run the command you must choose a runtime for your project.

Select a worker runtime:
dotnet
node
python 
powershell

Verwenden Sie die NACH-OBEN- oder NACH-UNTEN-TASTE, um eine Sprache auszuwählen, und drücken Sie dann die EINGABETASTE.Use the up/down arrow keys to choose a language, then press Enter. Wenn Sie JavaScript- oder TypeScript-Funktionen entwickeln möchten, wählen Sie node und dann die Sprache aus.If you plan to develop JavaScript or TypeScript functions, choose node, and then select the language. Für TypeScript gelten einige zusätzliche Anforderungen.TypeScript has some additional requirements.

Die Ausgabe ähnelt dem folgenden Beispiel für ein JavaScript-Projekt:The output looks like the following example for a JavaScript project:

Select a worker runtime: node
Writing .gitignore
Writing host.json
Writing local.settings.json
Writing C:\myfunctions\myMyFunctionProj\.vscode\extensions.json
Initialized empty Git repository in C:/myfunctions/myMyFunctionProj/.git/

func init unterstützt die folgenden Optionen, die nur unter Version 3.x/2.x verfügbar sind, sofern nicht anders angegeben:func init supports the following options, which are version 3.x/2.x-only, unless otherwise noted:

OptionOption BESCHREIBUNGDescription
--csx Erstellt .NET-Funktionen als C#-Skript, dies entspricht dem Verhalten in Version 1.x.Creates .NET functions as C# script, which is the version 1.x behavior. Nur mit --worker-runtime dotnet gültig.Valid only with --worker-runtime dotnet.
--docker Erstellt ein Dockerfile für einen Container mithilfe eines Basisimages, das auf dem ausgewählten Wert für --worker-runtime basiert.Creates a Dockerfile for a container using a base image that is based on the chosen --worker-runtime. Verwenden Sie diese Option, wenn Sie die Veröffentlichung in einem benutzerdefinierten Linux-Container planen.Use this option when you plan to publish to a custom Linux container.
--docker-only Fügt einem vorhandenen Projekt eine Dockerfile hinzu.Adds a Dockerfile to an existing project. Fordert die Worker-Runtime an, wenn sie nicht angegeben oder in „local.settings.json“ festgelegt wurde.Prompts for the worker-runtime if not specified or set in local.settings.json. Verwenden Sie diese Option, wenn Sie die Veröffentlichung eines vorhandenen Projekts in einem benutzerdefinierten Linux-Container planen.Use this option when you plan to publish an existing project to a custom Linux container.
--force Initialisiert das Projekt, auch wenn es bereits Dateien enthält.Initialize the project even when there are existing files in the project. Diese Einstellung überschreibt vorhandene Dateien mit dem gleichen Namen.This setting overwrites existing files with the same name. Andere Dateien im Projektordner sind nicht betroffen.Other files in the project folder aren't affected.
--language Initialisiert ein sprachspezifisches Projekt.Initializes a language specific project. Wird derzeit unterstützt, wenn --worker-runtime auf node festgelegt ist.Currently supported when --worker-runtime set to node. Die Optionen sind typescript und javascript.Options are typescript and javascript. Sie können auch --worker-runtime javascript oder --worker-runtime typescript verwenden.You can also use --worker-runtime javascript or --worker-runtime typescript.
--managed-dependencies Installiert verwaltete Abhängigkeiten.Installs managed dependencies. Derzeit unterstützt nur die PowerShell-Workerruntime diese Funktion.Currently, only the PowerShell worker runtime supports this functionality.
--source-control Steuert, ob ein Git-Repository erstellt wird.Controls whether a git repository is created. Standardmäßig wird kein Repository erstellt.By default, a repository isn't created. Im Fall von true wird ein Repository erstellt.When true, a repository is created.
--worker-runtime Legt die Runtime der Sprache für das Projekt fest.Sets the language runtime for the project. Unterstützte Werte sind: csharp, dotnet, javascript,node (JavaScript), powershell, python und typescript.Supported values are: csharp, dotnet, javascript,node (JavaScript), powershell, python, and typescript. Für Java verwenden Sie Maven. Wird kein Wert festgelegt, werden Sie während der Initialisierung zur Auswahl der Runtime aufgefordert.For Java, use Maven.When not set, you're prompted to choose your runtime during initialization.

Wichtig

Ab Version 2.x der Core-Tools werden Funktions-App-Projekte für die .NET-Runtime als C#-Klassenprojekte (.csproj) erstellt.By default, version 2.x and later versions of the Core Tools create function app projects for the .NET runtime as C# class projects (.csproj). Diese C#-Projekte, die mit Visual Studio oder Visual Studio Code verwendet werden können, werden während der Tests und beim Veröffentlichen in Azure kompiliert.These C# projects, which can be used with Visual Studio or Visual Studio Code, are compiled during testing and when publishing to Azure. Wenn Sie stattdessen dieselben C#-Skriptdateien (.csx) erstellen und verwenden möchten, die in Version 1.x und im Portal erstellt wurden, müssen Sie die --csx-Parameter beim Erstellen und Bereitstellen von Funktionen einschließen.If you instead want to create and work with the same C# script (.csx) files created in version 1.x and in the portal, you must include the --csx parameter when you create and deploy functions.

Registrieren von ErweiterungenRegister extensions

Mit Ausnahme von HTTP- und Zeitgebertriggern werden Functions-Bindungen in der Runtimeversion 2.x und höher als Erweiterungspakete implementiert.With the exception of HTTP and timer triggers, Functions bindings in runtime version 2.x and higher are implemented as extension packages. Für HTTP-Bindungen und Zeitgebertrigger sind keine Erweiterungen erforderlich.HTTP bindings and timer triggers don't require extensions.

Um Inkompatibilitäten zwischen den verschiedenen Erweiterungspaketen zu reduzieren, können Sie mit Functions auf ein Erweiterungsbündel in der host.json-Projektdatei verweisen.To reduce incompatibilities between the various extension packages, Functions lets you reference an extension bundle in your host.json project file. Wenn Sie keine Erweiterungsbündel verwenden möchten, müssen Sie auch das .NET Core 2.x SDK lokal installieren und die Erweiterung CSPROJ mit Ihrem Functions-Projekt verwalten.If you choose not to use extension bundles, you also need to install .NET Core 2.x SDK locally and maintain an extensions.csproj with your functions project.

In Version 2.x und höheren Versionen der Azure Functions-Runtime müssen Sie die in Ihren Funktionen für die Bindungstypen verwendeten Erweiterungen explizit registrieren.In version 2.x and beyond of the Azure Functions runtime, you have to explicitly register the extensions for the binding types used in your functions. Sie können auch Bindungserweiterungen einzeln installieren, oder Sie können einen Erweiterungsbündelverweis in der Datei „host.json“ hinzufügen.You can choose to install binding extensions individually, or you can add an extension bundle reference to the host.json project file. Erweiterungsbündel wirken eventuellen Kompatibilitätsproblemen bei Paketen entgegen, wenn mehrere Bindungstypen verwendet werden.Extension bundles removes the chance of having package compatibility issues when using multiple binding types. Es handelt sich hierbei um den empfohlenen Ansatz zum Registrieren von Bindungserweiterungen.It is the recommended approach for registering binding extensions. Erweiterungsbündel beseitigen außerdem die Notwendigkeit der Installation des .NET Core 2.x SDK.Extension bundles also removes the requirement of installing the .NET Core 2.x SDK.

Verwenden von ErweiterungsbündelnUse extension bundles

Der einfachste Weg, Bindungserweiterungen zu installieren, ist die Aktivierung von Erweiterungspaketen.The easiest way to install binding extensions is to enable extension bundles. Wenn Sie Pakete aktivieren, wird automatisch ein vordefinierter Satz von Erweiterungspaketen installiert.When you enable bundles, a predefined set of extension packages is automatically installed.

Um Erweiterungspakete zu aktivieren, öffnen Sie die Datei „host.json“, und aktualisieren Sie ihren Inhalt entsprechend dem folgenden Code:To enable extension bundles, open the host.json file and update its contents to match the following code:

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

Weitere Informationen finden Sie unter Registrieren von Bindungserweiterungen von Azure Functions.To learn more, see Register Azure Functions binding extensions. Sie sollten Erweiterungsbündel in de Datei „host.json“ hinzufügen, bevor Sie der Datei „function.json“ Bindungen hinzufügen.You should add extension bundles to the host.json before you add bindings to the function.json file.

Explizites Installieren von ErweiterungenExplicitly install extensions

Wenn Sie keine Erweiterungspakete verwenden können, können Sie Azure Functions Core Tools lokal nutzen, um die für Ihr Projekt erforderlichen Erweiterungspakete zu installieren.If you aren't able to use extension bundles, you can use Azure Functions Core Tools locally to install the specific extension packages required by your project.

Wichtig

Erweiterungen können nicht explizit in einer Funktions-App installiert werden, die Erweiterungspakete verwendet.You can't explicitly install extensions in a function app that is using extension bundles. Entfernen Sie den Abschnitt extensionBundle in host.json, bevor Sie Erweiterungen explizit installieren.Remove the extensionBundle section in host.json before explicitly installing extensions.

Die folgenden Elemente beschreiben einige Gründe, aus denen Erweiterungen möglicherweise manuell installiert werden müssen:The following items describe some reasons you might need to install extensions manually:

  • Sie müssen auf eine bestimmte Version einer Erweiterung zugreifen, die nicht in einem Paket verfügbar ist.You need to access a specific version of an extension not available in a bundle.
  • Sie müssen auf eine benutzerdefinierte Erweiterung zugreifen, die nicht in einem Paket verfügbar ist.You need to access a custom extension not available in a bundle.
  • Sie müssen auf eine bestimmte Kombination von Erweiterungen zugreifen, die nicht in einem einzelnen Paket verfügbar ist.You need to access a specific combination of extensions not available in a single bundle.

Hinweis

Um Erweiterungen mithilfe von Core Tools manuell zu installieren, müssen Sie das .NET Core 2.x SDK installiert haben.To manually install extensions by using Core Tools, you must have the .NET Core 2.x SDK installed. Das .NET Core SDK wird von Azure Functions Core Tools zum Installieren von Erweiterungen über NuGet verwendet.The .NET Core SDK is used by Azure Functions Core Tools to install extensions from NuGet. Für die Verwendung von Azure Functions-Erweiterungen müssen Sie nicht mit .NET vertraut sein.You don't need to know .NET to use Azure Functions extensions.

Bei der expliziten Installation von Erweiterungen wird die .NET-Projektdatei „extensions.csproj“ zum Stamm Ihres Projekts hinzugefügt.When you explicitly install extensions, a .NET project file named extensions.csproj is added to the root of your project. Diese Datei definiert die von Ihren Funktionen benötigten NuGet-Pakete.This file defines the set of NuGet packages required by your functions. Sie können zwar mit den NuGet-Paketverweisen in dieser Datei arbeiten, mit Core Tools können Erweiterungen jedoch installiert werden, ohne die Datei manuell bearbeiten zu müssen.While you can work with the NuGet package references in this file, Core Tools lets you install extensions without having to manually edit the file.

Es gibt verschiedene Möglichkeiten, um Core Tools zum Installieren der erforderlichen Erweiterungen in Ihrem lokalen Projekt zu verwenden.There are several ways to use Core Tools to install the required extensions in your local project.

Installieren aller ErweiterungenInstall all extensions

Verwenden Sie den folgenden Befehl, um automatisch alle Erweiterungspakete hinzuzufügen, die von den Bindungen in Ihrem lokalen Projekt verwendet werden:Use the following command to automatically add all extension packages used by the bindings in your local project:

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.The command reads the function.json file to see which packages you need, installs them, and rebuilds the extensions project (extensions.csproj). Er fügt alle neuen Bindungen an die aktuelle Version hinzu, aktualisiert aber keine vorhandenen Bindungen.It adds any new bindings at the current version but does not update existing bindings. Verwenden Sie die Option --force, um vorhandene Bindungen beim Installieren neuer auf die neueste Version zu aktualisieren.Use the --force option to update existing bindings to the latest version when installing new ones.

Verwendet Ihre Funktions-App Bindungen, die von Core Tools nicht erkannt werden, müssen Sie die jeweilige Erweiterung manuell installieren.If your function app uses bindings that Core Tools does not recognize, you must manually install the specific extension.

Installieren einer bestimmten ErweiterungInstall a specific extension

Verwenden Sie den folgenden Befehl, um ein bestimmtes Erweiterungspaket mit einer bestimmten Version zu installieren (in diesem Fall die Speichererweiterung):Use the following command to install a specific extension package at a specific version, in this case the Storage extension:

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

Datei für lokale EinstellungenLocal settings file

Die Datei „local.settings.json“ speichert App-Einstellungen, Verbindungszeichenfolgen und Einstellungen, die von lokalen Entwicklungstools verwendet werden.The local.settings.json file stores app settings, connection strings, and settings used by local development tools. Einstellungen in der Datei „local.settings.json“ werden nur bei der lokalen Ausführung von Projekten verwendet.Settings in the local.settings.json file are used only when you're running projects locally. Die Datei mit den lokalen Einstellungen hat folgende Struktur:The local settings file has this structure:

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "<language worker>",
    "AzureWebJobsStorage": "<connection-string>",
    "AzureWebJobsDashboard": "<connection-string>",
    "MyBindingConnection": "<binding-connection-string>",
    "AzureWebJobs.HttpExample.Disabled": "true"
  },
  "Host": {
    "LocalHttpPort": 7071,
    "CORS": "*",
    "CORSCredentials": false
  },
  "ConnectionStrings": {
    "SQLConnectionString": "<sqlclient-connection-string>"
  }
}

Diese Einstellungen werden bei der lokalen Ausführung von Projekten unterstützt:These settings are supported when you run projects locally:

EinstellungSetting BESCHREIBUNGDescription
IsEncrypted Wenn diese Einstellung auf true festgelegt wird, werden alle Werte mithilfe eines Schlüssels des lokalen Computers verschlüsselt.When this setting is set to true, all values are encrypted with a local machine key. Wird mit func settings-Befehlen verwendet.Used with func settings commands. Der Standardwert ist false.Default value is false. Es empfiehlt sich ggf., die Datei „local.settings.json“ auf dem lokalen Computer zu verschlüsseln, wenn sie Geheimnisse (etwa Dienstverbindungszeichenfolgen) enthält.You might want to encrypt the local.settings.json file on your local computer when it contains secrets, such as service connection strings. Der Host entschlüsselt die Einstellungen bei der Ausführung automatisch.The host automatically decrypts settings when it runs. Verwenden Sie den Befehl func settings decrypt, bevor Sie versuchen, lokal verschlüsselte Einstellungen zu lesen.Use the func settings decrypt command before trying to read locally encrypted settings.
Values Ein Array von Anwendungseinstellungen und Verbindungszeichenfolgen, die bei der lokalen Ausführung eines Projekts verwendet werden.Array of application settings and connection strings used when a project is running locally. Diese Schlüssel-Wert-Paare (Zeichenfolge-Zeichenfolge) entsprechen den Anwendungseinstellungen in Ihrer Funktions-App in Azure, etwa AzureWebJobsStorage.These key-value (string-string) pairs correspond to application settings in your function app in Azure, like AzureWebJobsStorage. Viele Trigger und Bindungen verfügen über eine Eigenschaft, die auf eine App-Einstellung für die Verbindungszeichenfolge verweist, z. B. Connection für den Blob Storage-Trigger.Many triggers and bindings have a property that refers to a connection string app setting, like Connection for the Blob storage trigger. Für diese Eigenschaften muss eine Anwendungseinstellung im Array Values definiert sein.For these properties, you need an application setting defined in the Values array. Eine Liste der häufig verwendeten Einstellungen finden Sie in der nachfolgenden Tabelle.See the subsequent table for a list of commonly used settings.
Werte müssen Zeichenfolgen und dürfen nicht JSON-Objekte oder Arrays sein.Values must be strings and not JSON objects or arrays. Einstellungsnamen dürfen weder einen Doppelpunkt (:) noch einen doppelten Unterstrich (__) enthalten.Setting names can't include a colon (:) or a double underline (__). Doppelte Unterstriche sind von der Runtime reserviert, und der Doppelpunkt ist für die Unterstützung der Abhängigkeitsinjektion reserviert.Double underline characters are reserved by the runtime, and the colon is reserved to support dependency injection.
Host Die Einstellungen in diesem Abschnitt passen den Hostprozess von Functions bei der lokalen Ausführung von Projekten an.Settings in this section customize the Functions host process when you run projects locally. Diese Einstellungen sind getrennt von den host.json-Einstellungen, die auch bei der Ausführung von Projekten in Azure angewendet werden.These settings are separate from the host.json settings, which also apply when you run projects in Azure.
LocalHttpPort Legt den Standardport fest, der bei der Ausführung des lokalen Functions-Host verwendet wird (func host start und func run).Sets the default port used when running the local Functions host (func host start and func run). Die Befehlszeilenoption --port hat Vorrang vor dieser Einstellung.The --port command-line option takes precedence over this setting.
CORS Definiert die für die Ressourcenfreigabe zwischen verschiedenen Ursprüngen (CORS) zulässigen Ursprünge.Defines the origins allowed for cross-origin resource sharing (CORS). Ursprünge werden als durch Trennzeichen getrennte Liste ohne Leerzeichen bereitgestellt.Origins are supplied as a comma-separated list with no spaces. Den Platzhalterwert (*) wird unterstützt, wodurch Anforderungen von einem beliebigen Ursprung zulässig sind.The wildcard value (*) is supported, which allows requests from any origin.
CORSCredentials Wird true festgelegt, sind Anforderungen vom Typ withCredentials zulässig.When set to true, allows withCredentials requests.
ConnectionStrings Eine Auflistung.A collection. Verwenden Sie diese Sammlung nicht für die Verbindungszeichenfolgen, die von Ihren Funktionsbindungen verwendet werden.Don't use this collection for the connection strings used by your function bindings. Diese Sammlung wird nur von Frameworks verwendet, die Verbindungszeichenfolgen üblicherweise aus dem Abschnitt ConnectionStrings einer Konfigurationsdatei abrufen, z. B. Entity Framework.This collection is used only by frameworks that typically get connection strings from the ConnectionStrings section of a configuration file, like Entity Framework. Verbindungszeichenfolgen in diesem Objekt werden der Umgebung mit dem Anbietertyp System.Data.SqlClient hinzugefügt.Connection strings in this object are added to the environment with the provider type of System.Data.SqlClient. Elemente in dieser Sammlung werden nicht mit anderen App-Einstellungen in Azure veröffentlicht.Items in this collection aren't published to Azure with other app settings. Sie müssen diese Werte explizit zur Sammlung Connection strings in den Einstellungen Ihrer Funktions-App hinzufügen.You must explicitly add these values to the Connection strings collection of your function app settings. Bei der Erstellung einer SqlConnection-Klasse in Ihrem Funktionscode sollten Sie den Verbindungszeichenfolgenwert zusammen mit den anderen Verbindungen in den Anwendungseinstellungen im Portal speichern.If you're creating a SqlConnection in your function code, you should store the connection string value with your other connections in Application Settings in the portal.

Bei lokaler Ausführung können die folgenden Anwendungseinstellungen in das Array Values aufgenommen werden:The following application settings can be included in the Values array when running locally:

EinstellungSetting WerteValues BESCHREIBUNGDescription
AzureWebJobsStorage Verbindungszeichenfolge für das Speicherkonto oderStorage account connection string, or
UseDevelopmentStorage=true
Enthält die Verbindungszeichenfolge für ein Azure-Speicherkonto.Contains the connection string for an Azure storage account. Erforderlich, wenn andere Trigger als HTTP verwendet werden.Required when using triggers other than HTTP. Weitere Informationen finden Sie in der Referenz zu AzureWebJobsStorage.For more information, see the AzureWebJobsStorage reference.
Wenn der Azure-Speicheremulator lokal installiert ist und Sie AzureWebJobsStorage auf UseDevelopmentStorage=true festlegen, verwendet Core Tools den Emulator.When you have the Azure Storage Emulator installed locally and you set AzureWebJobsStorage to UseDevelopmentStorage=true, Core Tools uses the emulator. Der Emulator ist während der Entwicklung hilfreich, doch sollten Sie vor der Bereitstellung einen Test mit einer tatsächlichen Speicherverbindung durchführen.The emulator is useful during development, but you should test with an actual storage connection before deployment.
AzureWebJobs.<FUNCTION_NAME>.Disabled true|false Wenn Sie bei lokaler Ausführung eine Funktion deaktivieren möchten, fügen Sie der Sammlung "AzureWebJobs.<FUNCTION_NAME>.Disabled": "true" hinzu, wobei <FUNCTION_NAME> der Name der Funktion ist.To disable a function when running locally, add "AzureWebJobs.<FUNCTION_NAME>.Disabled": "true" to the collection, where <FUNCTION_NAME> is the name of the function. Weitere Informationen zum Deaktivieren von Funktionen in Azure Functions finden Sie hier.To learn more, see How to disable functions in Azure Functions
FUNCTIONS_WORKER_RUNTIME dotnet
node
java
powershell
python
Gibt die Zielsprache der Functions-Runtime an.Indicates the targeted language of the Functions runtime. Erforderlich für Version 2.x und höher der Functions-Runtime.Required for version 2.x and higher of the Functions runtime. Diese Einstellung wird von Core Tools für Ihr Projekt generiert.This setting is generated for your project by Core Tools. Weitere Informationen finden Sie in der Referenz zu FUNCTIONS_WORKER_RUNTIME.To learn more, see the FUNCTIONS_WORKER_RUNTIME reference.
FUNCTIONS_WORKER_RUNTIME_VERSION ~7 Gibt an, dass bei lokaler Ausführung PowerShell 7 verwendet wird.Indicates that PowerShell 7 be used when running locally. Wird kein Wert festgelegt, wird PowerShell Core 6 verwendet.If not set, then PowerShell Core 6 is used. Diese Einstellung wird nur bei lokaler Ausführung verwendet.This setting is only used when running locally. Bei der Ausführung in Azure wird die PowerShell-Runtimeversion durch die Einstellung der powerShellVersion-Sitekonfiguration bestimmt, die im Portal festgelegt werden kann.When running in Azure, the PowerShell runtime version is determined by the powerShellVersion site configuration setting, which can be set in the portal.

Standardmäßig werden diese Einstellungen nicht automatisch migriert, wenn das Projekt in Azure veröffentlicht wird.By default, these settings are not migrated automatically when the project is published to Azure. Verwenden Sie den Switch --publish-local-settingsbei der Veröffentlichung, um sicherzustellen, dass diese Einstellungen zur Funktionen-App in Azure hinzugefügt werden.Use the --publish-local-settings switch when you publish to make sure these settings are added to the function app in Azure. Beachten Sie, dass Werte in ConnectionStrings niemals veröffentlicht werden.Note that values in ConnectionStrings are never published.

Die Werte für Funktions-App-Einstellungen können auch im Code als Umgebungsvariablen gelesen werden.The function app settings values can also be read in your code as environment variables. Weitere Informationen finden Sie im Abschnitt „Umgebungsvariablen“ dieser sprachspezifischen Referenzthemen:For more information, see the Environment variables section of these language-specific reference topics:

Wenn keine gültige Speicherverbindungszeichenfolge für AzureWebJobsStorage festgelegt ist und der Emulator nicht verwendet wird, wird die folgende Fehlermeldung angezeigt:When no valid storage connection string is set for AzureWebJobsStorage and the emulator isn't being used, the following error message is shown:

Missing value for AzureWebJobsStorage in local.settings.json (Fehlender Wert für AzureWebJobsStorage in local.settings.json).Missing value for AzureWebJobsStorage in local.settings.json. Dies ist für alle Nicht-HTTP-Trigger erforderlich.This is required for all triggers other than HTTP. Sie können „func azure functionapp fetch-app-settings <functionAppName>“ ausführen oder eine Verbindungszeichenfolge in „local.settings.json“ eingeben.You can run 'func azure functionapp fetch-app-settings <functionAppName>' or specify a connection string in local.settings.json.

Abrufen der SpeicherverbindungszeichenfolgenGet your storage connection strings

Auch wenn der Microsoft Azure-Speicheremulator für die Entwicklung verwendet wird, empfiehlt es sich, einen Test mit einer tatsächlichen Speicherverbindung durchzuführen.Even when using the Microsoft Azure Storage Emulator for development, you may want to test with an actual storage connection. Wenn Sie bereits ein Speicherkonto erstellt haben, können Sie eine gültige Speicherverbindungszeichenfolge anhand einer der folgenden Methoden abrufen:Assuming you have already created a storage account, you can get a valid storage connection string in one of the following ways:

  • Suchen Sie im Azure portal nach Speicherkonten, und wählen Sie diese Option aus.From the Azure portal, search for and select Storage accounts. Auswählen von Speicherkonten im Azure-PortalSelect Storage accounts from Azure portal

    Wählen Sie Ihr Speicherkonto aus, wählen Sie Zugriffsschlüssel unter Einstellungen aus, und kopieren Sie dann einen der Werte für Verbindungszeichenfolge.Select your storage account, select Access keys in Settings, then copy one of the Connection string values. Kopieren der Verbindungszeichenfolge im Azure-PortalCopy connection string from Azure portal

  • Verwenden Sie Azure Storage-Explorer, um eine Verbindung mit Ihrem Azure-Konto herzustellen.Use Azure Storage Explorer to connect to your Azure account. Erweitern Sie im Explorer Ihr Abonnement und anschließend Speicherkonten, wählen Sie Ihr Speicherkonto aus, und kopieren Sie die primäre oder sekundäre Verbindungszeichenfolge.In the Explorer, expand your subscription, expand Storage Accounts, select your storage account, and copy the primary or secondary connection string.

    Kopieren der Verbindungszeichenfolge im Storage-Explorer

  • Verwenden Sie Core Tools im Projektstamm, um mit einem der folgenden Befehle die Verbindungszeichenfolge von Azure herunterzuladen:Use Core Tools from the project root to download the connection string from Azure with one of the following commands:

    • Herunterladen aller Einstellungen aus einer vorhandenen Funktions-App:Download all settings from an existing function app:

      func azure functionapp fetch-app-settings <FunctionAppName>
      
    • Abrufen der Verbindungszeichenfolge für ein bestimmtes Speicherkonto:Get the Connection string for a specific storage account:

      func azure storage fetch-connection-string <StorageAccountName>
      

      Wenn Sie noch nicht in Azure angemeldet sind, werden Sie aufgefordert, sich anzumelden.When you aren't already signed in to Azure, you're prompted to do so. Diese Befehle überschreiben alle vorhandenen Einstellungen in der Datei „local.settings.json“.These commands overwrite any existing settings in the local.settings.json file.

Erstellen einer FunktionCreate a function

Um eine Funktion zu erstellen, führen Sie den folgenden Befehl aus:To create a function, run the following command:

func new

In Version 3.x/2.x werden Sie beim Ausführen von func new aufgefordert, eine Vorlage in der Standardsprache der Funktions-App auszuwählen. Sie werden außerdem aufgefordert, einen Namen für die Funktion auszuwählen.In version 3.x/2.x, when you run func new you are prompted to choose a template in the default language of your function app, then you are also prompted to choose a name for your function. Auch in Version 1.x werden Sie aufgefordert, die Sprache auszuwählen.In version 1.x, you are also prompted to choose the language.

Select a language: Select a template:
Blob trigger
Cosmos DB trigger
Event Grid trigger
HTTP trigger
Queue trigger
SendGrid
Service Bus Queue trigger
Service Bus Topic trigger
Timer trigger

Der Funktionscode wird mit dem angegebenen Funktionsnamen in einem Unterordner generiert, wie dies in der folgenden Warteschlangentriggerausgabe zu sehen ist:Function code is generated in a subfolder with the provided function name, as you can see in the following queue trigger output:

Select a language: Select a template: Queue trigger
Function name: [QueueTriggerJS] MyQueueTrigger
Writing C:\myfunctions\myMyFunctionProj\MyQueueTrigger\index.js
Writing C:\myfunctions\myMyFunctionProj\MyQueueTrigger\readme.md
Writing C:\myfunctions\myMyFunctionProj\MyQueueTrigger\sample.dat
Writing C:\myfunctions\myMyFunctionProj\MyQueueTrigger\function.json

Sie können diese Optionen im Befehl auch mit folgenden Argumenten angeben:You can also specify these options in the command using the following arguments:

ArgumentArgument BESCHREIBUNGDescription
--csx (Version 2.x und höher) Generiert dieselben C#-Skriptvorlagen (.csx), die in Version 1.x und im Portal verwendet wurden.(Version 2.x and later versions.) Generates the same C# script (.csx) templates used in version 1.x and in the portal.
--language, -l--language, -l Die Vorlagenprogrammiersprache, z.B. C#, F# oder JavaScript.The template programming language, such as C#, F#, or JavaScript. Diese Option ist in Version 1.x erforderlich.This option is required in version 1.x. Verwenden Sie diese Option nicht ab Version 2.x, oder wählen Sie die der Workerruntime entsprechende Sprache.In version 2.x and later versions, do not use this option or choose a language that matches the worker runtime.
--name, -n--name, -n Der Funktionsname.The function name.
--template, -t--template, -t Mit dem Befehl func templates list können Sie sich die vollständige Liste der verfügbaren Vorlagen für jede unterstützte Sprache anzeigen lassen.Use the func templates list command to see the complete list of available templates for each supported language.

Führen Sie z.B. zum Erstellen eines JavaScript-HTTP-Triggers in einem einzelnen Befehl Folgendes aus:For example, to create a JavaScript HTTP trigger in a single command, run:

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

Führen Sie zum Erstellen einer durch die Warteschlange ausgelösten Funktion in einem einzelnen Befehl Folgendes aus:To create a queue-triggered function in a single command, run:

func new --template "Queue Trigger" --name QueueTriggerJS

Lokales Ausführen von FunktionenRun functions locally

Um ein Functions-Projekt auszuführen, führen Sie den Functions-Host aus.To run a Functions project, run the Functions host. Der Host aktiviert Trigger für alle Funktionen im Projekt.The host enables triggers for all functions in the project. Der Startbefehl variiert abhängig von der Projektsprache.The start command varies, depending on your project language.

func start --build

Hinweis

Version 1.x der Functions-Runtime erfordert den host-Befehl, wie im folgenden Beispiel gezeigt:Version 1.x of the Functions runtime requires the host command, as in the following example:

func host start

func start unterstützt die folgenden Optionen:func start supports the following options:

OptionOption BESCHREIBUNGDescription
--no-build Das aktuelle Projekt wird vor der Ausführung nicht erstellt.Do no build current project before running. Nur für dotnet-Projekte.For dotnet projects only. Standardmäßig ist „false“ festgelegt.Default is set to false. Wird für Version 1.x nicht unterstützt.Not supported for version 1.x.
--cors-credentials Lässt ursprungsübergreifende authentifizierte Anforderungen (d. h. Cookies und Authentifizierungsheader) zu. Wird für Version 1.x nicht unterstützt.Allow cross-origin authenticated requests (i.e. cookies and the Authentication header) Not supported for version 1.x.
--cors Eine durch Trennzeichen getrennte Liste der CORS-Ursprünge ohne Leerzeichen.A comma-separated list of CORS origins, with no spaces.
--language-worker Argumente zum Konfigurieren des Spracharbeitsthreads.Arguments to configure the language worker. Beispielsweise können Sie das Debuggen für den Spracharbeiter aktivieren, indem Sie den Debugport und andere erforderliche Argumente bereitstellen.For example, you may enable debugging for language worker by providing debug port and other required arguments. Wird für Version 1.x nicht unterstützt.Not supported for version 1.x.
--cert Der Pfad zu einer PFX-Datei, die einen privaten Schlüssel enthält.The path to a .pfx file that contains a private key. Nur mit --useHttps verwendet.Only used with --useHttps. Wird für Version 1.x nicht unterstützt.Not supported for version 1.x.
--password Entweder das Kennwort oder eine Datei, die das Kennwort für eine PFX-Datei enthält.Either the password or a file that contains the password for a .pfx file. Nur mit --cert verwendet.Only used with --cert. Wird für Version 1.x nicht unterstützt.Not supported for version 1.x.
--port, -p--port, -p Der lokale Port, auf dem gelauscht werden soll.The local port to listen on. Standardwert: 7071.Default value: 7071.
--pause-on-error Vor Beenden des Prozesses für zusätzliche Eingabe anhalten.Pause for additional input before exiting the process. Wird nur beim Starten von Core Tools in einer integrierten Entwicklungsumgebung (IDE) verwendet.Used only when launching Core Tools from an integrated development environment (IDE).
--script-root, --prefix--script-root, --prefix Wird zum Angeben des Pfads zum Stamm der Funktions-App verwendet, die ausgeführt oder bereitgestellt werden soll.Used to specify the path to the root of the function app that is to be run or deployed. Diese Option wird für kompilierte Projekte verwendet, die Projektdateien in einem Unterordner generieren.This is used for compiled projects that generate project files into a subfolder. Beispiel: Wenn Sie ein C#-Klassenbibliotheksprojekt erstellen, werden die Dateien „host.json“, „local.settings.json“ und „function.json“ in einem Unterordner des Stammverzeichnisses mit einem Pfad wie etwa dem folgenden generiert: MyProject/bin/Debug/netstandard2.0.For example, when you build a C# class library project, the host.json, local.settings.json, and function.json files are generated in a root subfolder with a path like MyProject/bin/Debug/netstandard2.0. Legen Sie in diesem Fall als Präfix --script-root MyProject/bin/Debug/netstandard2.0 fest.In this case, set the prefix as --script-root MyProject/bin/Debug/netstandard2.0. Dies ist bei der Ausführung in Azure der Stamm der Funktions-App.This is the root of the function app when running in Azure.
--timeout, -t--timeout, -t Das Timeout für den zu startenden Functions-Host in Sekunden.The timeout for the Functions host to start, in seconds. Standardwert: 20 Sekunden.Default: 20 seconds.
--useHttps Erstellen Sie eine Bindung an https://localhost:{port} statt an http://localhost:{port}.Bind to https://localhost:{port} rather than to http://localhost:{port}. Standardmäßig erstellt diese Option ein vertrauenswürdiges Zertifikat auf Ihrem Computer.By default, this option creates a trusted certificate on your computer.

Wenn der Functions-Host startet, gibt er die URL der HTTP-ausgelösten Funktionen aus:When the Functions host starts, it outputs the URL of HTTP-triggered functions:

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.When running locally, authorization isn't enforced for HTTP endpoints. Das bedeutet, dass alle lokalen HTTP-Anforderungen wie authLevel = "anonymous" behandelt werden.This means that all local HTTP requests are handled as authLevel = "anonymous". Weitere Informationen finden Sie im Artikel über HTTP-Bindungen.For more information, see the HTTP binding article.

Übergeben von Testdaten an eine FunktionPassing test data to a function

Um Ihre Funktionen lokal zu testen, starten Sie den Functions-Host, und rufen Sie Endpunkte auf dem lokalen Server mithilfe von HTTP-Anforderungen auf.To test your functions locally, you start the Functions host and call endpoints on the local server using HTTP requests. Der aufgerufene Endpunkt hängt vom Typ der Funktion ab.The endpoint you call depends on the type of function.

Hinweis

Beispiele in diesem Thema verwenden das Tool cURL, um HTTP-Anforderungen vom Terminal oder einer Eingabeaufforderung zu senden.Examples in this topic use the cURL tool to send HTTP requests from the terminal or a command prompt. Sie können ein Tool Ihrer Wahl verwenden, um HTTP-Anforderungen an den lokalen Server zu senden.You can use a tool of your choice to send HTTP requests to the local server. Das Tool cURL ist auf Linux-basierten Systemen sowie im Windows 10 Build 17063 und höher standardmäßig verfügbar.The cURL tool is available by default on Linux-based systems and Windows 10 build 17063 and later. Unter einem älteren Windows müssen Sie das cURL-Tool erst herunterladen und installieren.On older Windows, you must first download and install the cURL tool.

Allgemeinere Informationen zum Testen von Funktionen finden Sie unter Strategien zum Testen Ihres Codes in Azure Functions.For more general information on testing functions, see Strategies for testing your code in Azure Functions.

Über HTTP und Webhook ausgelöste FunktionenHTTP and webhook triggered functions

Sie rufen die folgenden Endpunkte auf, um mit HTTP und Webhooks ausgelöste Funktionen lokal auszuführen:You call the following endpoint to locally run HTTP and webhook triggered functions:

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

Achten Sie darauf, den gleichen Servernamen und Port zu verwenden, auf die der Functions-Host lauscht.Make sure to use the same server name and port that the Functions host is listening on. Dies können Sie der generierten Ausgabe entnehmen, wenn der Functions-Host gestartet wird.You see this in the output generated when starting the Function host. Sie können diese URL mit jeder HTTP-Methode aufrufen, die vom Trigger unterstützt wird.You can call this URL using any HTTP method supported by the trigger.

Der folgende cURL-Befehl löst die Schnellstart-Funktion MyHttpTrigger von einer GET-Anforderung aus, wobei der name-Parameter in der Abfragezeichenfolge übergeben wird.The following cURL command triggers the MyHttpTrigger quickstart function from a GET request with the name parameter passed in the query string.

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:The following example is the same function called from a POST request passing name in the request body:

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.You can make GET requests from a browser passing data in the query string. Für alle anderen HTTP-Methoden müssen Sie cURL, Fiddler, Postman oder ein ähnliches HTTP-Testtool verwenden.For all other HTTP methods, you must use cURL, Fiddler, Postman, or a similar HTTP testing tool.

Nicht über HTTP ausgelöste FunktionenNon-HTTP triggered functions

Für alle Arten von Funktionen mit Ausnahme von HTTP-Triggern, Webhooks und Event Grid-Triggern können Sie Funktionen lokal testen, indem Sie einen Verwaltungsendpunkt aufrufen.For all kinds of functions other than HTTP triggers and webhooks and Event Grid triggers, you can test your functions locally by calling an administration endpoint. Wenn Sie diesen Endpunkt mit einer HTTP POST-Anforderung auf dem lokalen Server aufrufen, wird die Funktion ausgelöst.Calling this endpoint with an HTTP POST request on the local server triggers the function.

Informationen zum lokalen Testen der durch Event Grid ausgelösten Funktionen finden Sie unter Lokales Testen mit Viewer-Web-App.To test Event Grid triggered functions locally, see Local testing with viewer web app.

Optional können Sie Testdaten im Hauptteil der POST-Anforderung an die Ausführung übergeben.You can optionally pass test data to the execution in the body of the POST request. Diese Funktionalität ähnelt der Registerkarte Test im Azure-Portal.This functionality is similar to the Test tab in the Azure portal.

Sie rufen den folgenden Administratorendpunkt zum Auslösen von Nicht-HTTP-Funktionen auf:You call the following administrator endpoint to trigger non-HTTP functions:

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.To pass test data to the administrator endpoint of a function, you must supply the data in the body of a POST request message. Der Nachrichtentext muss das folgende JSON-Format aufweisen:The message body is required to have the following JSON format:

{
    "input": "<trigger_input>"
}

Der Wert <trigger_input> enthält Daten in einem von der Funktion erwarteten Format.The <trigger_input> value contains data in a format expected by the function. Das folgende cURL-Beispiel wird per POST an eine QueueTriggerJS-Funktion übergeben.The following cURL example is a POST to a QueueTriggerJS function. In diesem Fall ist die Eingabe eine Zeichenfolge, die der in der Warteschlange erwarteten Nachricht entspricht.In this case, the input is a string that is equivalent to the message expected to be found in the queue.

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

Verwenden des Befehls func run (nur Version 1.x)Using the func run command (version 1.x only)

Wichtig

Der Befehl func run wird nur in Version 1.x der Tools unterstützt.The func run command is only supported in version 1.x of the tools. Weitere Informationen finden Sie im Thema Einstellen von Runtimeversionen von Azure Functions als Ziel.For more information, see the topic How to target Azure Functions runtime versions.

In Version 1.x können sie eine Funktion mithilfe von func run <FunctionName> auch direkt aufrufen und Eingabedaten für die Funktion bereitstellen.In version 1.x, you can also invoke a function directly by using func run <FunctionName> and provide input data for the function. Dieser Befehl ähnelt der Ausführung einer Funktion mithilfe der Registerkarte Test im Azure-Portal.This command is similar to running a function using the Test tab in the Azure portal.

func run unterstützt die folgenden Optionen:func run supports the following options:

OptionOption BESCHREIBUNGDescription
--content, -c--content, -c Inlineinhalt.Inline content.
--debug, -d--debug, -d Anfügen eines Debuggers an den Hostprozess vor dem Ausführen der Funktion.Attach a debugger to the host process before running the function.
--timeout, -t--timeout, -t Wartezeit (in Sekunden), bis der lokale Functions-Host bereit ist.Time to wait (in seconds) until the local Functions host is ready.
--file, -f--file, -f Der als Inhalt zu verwendende Dateiname.The file name to use as content.
--no-interactive Fordert keine Eingabe an.Does not prompt for input. Für Automatisierungsszenarien nützlich.Useful for automation scenarios.

Um z.B. eine HTTP-ausgelöste Funktion aufzurufen und Inhaltstext zu übergeben, führen Sie folgenden Befehl aus:For example, to call an HTTP-triggered function and pass content body, run the following command:

func run MyHttpTrigger -c '{\"name\": \"Azure\"}'

Veröffentlichen in AzurePublish to Azure

Azure Functions Core Tools unterstützt zwei Arten von Bereitstellungen: die Bereitstellung der Funktionsprojektdateien direkt in Ihrer Funktions-App über ZIP-Bereitstellung und die Bereitstellung eines benutzerdefinierten Docker-Containers.The Azure Functions Core Tools supports two types of deployment: deploying function project files directly to your function app via Zip Deploy and deploying a custom Docker container. Sie müssen bereits eine Funktions-App im Azure-Abonnement erstellt haben, für die Sie den Code bereitstellen.You must have already created a function app in your Azure subscription, to which you'll deploy your code. Projekte, für die eine Kompilierung erforderlich ist, müssen so erstellt werden, dass die Binärdateien bereitgestellt werden können.Projects that require compilation should be built so that the binaries can be deployed.

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.You must have the Azure CLI or Azure PowerShell installed locally to be able to publish to Azure from Core Tools.

Ein Projektordner kann sprachspezifische Dateien und Verzeichnisse enthalten, die nicht veröffentlicht werden sollen.A project folder may contain language-specific files and directories that shouldn't be published. Ausgeschlossene Elemente werden in einer .funcignore-Datei im Stammprojektordner aufgelistet.Excluded items are listed in a .funcignore file in the root project folder.

Bereitstellen von ProjektdateienDeploy project files

Um Ihren lokalen Code in einer Funktions-App in Azure zu veröffentlichen, verwenden Sie den publish-Befehl:To publish your local code to a function app in Azure, use the publish command:

func azure functionapp publish <FunctionAppName>

Wichtig

Java verwendet Maven, um das lokale Projekt in Azure zu veröffentlichen.Java uses Maven to publish your local project to Azure. Verwenden Sie den folgenden Befehl zum Veröffentlichen in Azure: mvn azure-functions:deploy.Use the following command to publish to Azure: mvn azure-functions:deploy. Azure-Ressourcen werden während der ersten Bereitstellung erstellt.Azure resources are created during initial deployment.

Mit diesem Befehl wird in eine vorhandene Funktionen-App in Azure veröffentlicht.This command publishes to an existing function app in Azure. Sie erhalten eine Fehlermeldung, wenn Sie versuchen, an einen <FunctionAppName> zu veröffentlichen, der in Ihrem Abonnement nicht vorhanden ist.You'll get an error if you try to publish to a <FunctionAppName> that doesn't exist in your subscription. 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.To learn how to create a function app from the command prompt or terminal window using the Azure CLI or Azure PowerShell, see Create a Function App for serverless execution. Dieser Befehl verwendet standardmäßig die Remotebuildfunktion und stellt Ihre App für die Ausführung über das Bereitstellungspaket bereit.By default, this command uses remote build and deploys your app to run from the deployment package. Dieser empfohlene Bereitstellungsmodus kann auf Wunsch mithilfe der Option --nozip deaktiviert werden.To disable this recommended deployment mode, use the --nozip option.

Wichtig

Wenn Sie eine Funktions-App im Azure-Portal erstellen, verwendet sie automatisch Version 3.x der Functions-Runtime.When you create a function app in the Azure portal, it uses version 3.x of the Function runtime by default. 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).To make the function app use version 1.x of the runtime, follow the instructions in Run on version 1.x. Sie können die Runtimeversion für eine Funktions-App, die über Funktionen verfügt, nicht ändern.You can't change the runtime version for a function app that has existing functions.

Die folgenden Veröffentlichungsoptionen gelten für alle Versionen:The following publish options apply for all versions:

OptionOption BESCHREIBUNGDescription
--publish-local-settings -i Einstellungen zur Veröffentlichung in Azure in „local.settings.json“. Wenn die Einstellung bereits vorhanden ist, werden Sie gefragt, ob sie überschrieben werden soll.Publish settings in local.settings.json to Azure, prompting to overwrite if the setting already exists. Wenn Sie den Microsoft Azure-Speicheremulator verwenden, ändern Sie zunächst die App-Einstellung in eine tatsächliche Speicherverbindung.If you are using the Microsoft Azure Storage Emulator, first change the app setting to an actual storage connection.
--overwrite-settings -y Unterdrückt die Aufforderung zum Überschreiben von App-Einstellungen bei Verwendung von --publish-local-settings -i.Suppress the prompt to overwrite app settings when --publish-local-settings -i is used.

Die folgenden Veröffentlichungsoptionen werden nur ab Version 2.x unterstützt:The following publish options are supported only for version 2.x and later versions:

OptionOption BESCHREIBUNGDescription
--publish-settings-only, -o--publish-settings-only, -o Veröffentlicht nur die Einstellungen, der Inhalt wird übersprungen.Only publish settings and skip the content. Standard ist die Eingabeaufforderung.Default is prompt.
--list-ignored-files Zeigt eine Liste mit Dateien an, die bei der Veröffentlichung ignoriert werden (basierend auf der Datei vom Typ „.funcignore“).Displays a list of files that are ignored during publishing, which is based on the .funcignore file.
--list-included-files Zeigt eine Liste mit Dateien an, die veröffentlicht werden (basierend auf der Datei vom Typ „.funcignore“).Displays a list of files that are published, which is based on the .funcignore file.
--nozip Deaktiviert den Standardmodus Run-From-Package.Turns the default Run-From-Package mode off.
--build-native-deps Überspringt das Generieren des Ordners „.wheels“ beim Veröffentlichen von Python-Funktions-Apps.Skips generating .wheels folder when publishing Python function apps.
--build, -b--build, -b Führt beim Bereitstellen in einer Linux-Funktions-App eine Buildaktion durch.Performs build action when deploying to a Linux function app. Akzeptiert: remote und local.Accepts: remote and local.
--additional-packages Liste der zu installierenden Pakete beim Erstellen nativer Abhängigkeiten.List of packages to install when building native dependencies. Beispiel: python3-dev libevent-dev.For example: python3-dev libevent-dev.
--force In bestimmten Szenarien wird die Überprüfung vor der Veröffentlichung ignoriert.Ignore pre-publishing verification in certain scenarios.
--csx Veröffentlicht ein C#-Skriptprojekt (.csx).Publish a C# script (.csx) project.
--no-build Das Projekt wird während der Veröffentlichung nicht erstellt.Project isn't built during publishing. Für Python wird pip install nicht ausgeführt.For Python, pip install isn't performed.
--dotnet-cli-params Beim Veröffentlichen kompilierter C#-Funktionen (.csproj) rufen die Core Tools „dotnet build --output bin/publish“ auf.When publishing compiled C# (.csproj) functions, the core tools calls 'dotnet build --output bin/publish'. Alle daran übergebenen Parameter werden an die Befehlszeile angefügt.Any parameters passed to this will be appended to the command line.

Bereitstellen benutzerdefinierter ContainerDeploy custom container

Mit Azure Functions können Sie Ihr Funktionsprojekt in einem benutzerdefinierten Docker-Container bereitstellen.Azure Functions lets you deploy your function project in a custom Docker container. Weitere Informationen finden Sie unter Erstellen einer Funktion in Linux mit einem benutzerdefinierten Image (Vorschau).For more information, see Create a function on Linux using a custom image. Benutzerdefinierte Container müssen ein Dockerfile enthalten.Custom containers must have a Dockerfile. Um eine App mit einer Docker-Datei zu erstellen, verwenden Sie die Option „--dockerfile“ für func init.To create an app with a Dockerfile, use the --dockerfile option on func init.

func deploy

Die folgenden Optionen für die Bereitstellung benutzerdefinierter Container sind verfügbar:The following custom container deployment options are available:

OptionOption BESCHREIBUNGDescription
--registry Der Name einer Docker-Registrierung, bei der der aktuelle Benutzer angemeldet istThe name of a Docker Registry the current user signed-in to.
--platform Hostingplattform für die Funktions-AppHosting platform for the function app. Gültige Optionen: kubernetesValid options are kubernetes
--name Name der Funktions-AppFunction app name.
--max Legt optional die maximale Anzahl von Funktions-App-Instanzen fest, in denen die Bereitstellung erfolgen soll.Optionally, sets the maximum number of function app instances to deploy to.
--min Legt optional die Mindestanzahl von Funktions-App-Instanzen fest, in denen die Bereitstellung erfolgen soll.Optionally, sets the minimum number of function app instances to deploy to.
--config Legt eine optionale Bereitstellungskonfigurationsdatei fest.Sets an optional deployment configuration file.

Überwachen von FunktionenMonitoring functions

Die empfohlene Methode zum Überwachen der Ausführung Ihrer Funktionen ist die Integration in Azure Application Insights.The recommended way to monitor the execution of your functions is by integrating with Azure Application Insights. Sie können auch Ausführungsprotokolle an Ihren lokalen Computer streamen.You can also stream execution logs to your local computer. Weitere Informationen finden Sie unter Überwachen von Azure Functions.To learn more, see Monitor Azure Functions.

Application Insights-IntegrationApplication Insights integration

Application Insights-Integration sollte standardmäßig aktiviert sein, wenn Sie Ihre Funktions-App im Azure-Portal erstellen.Application Insights integration should be enabled when you create your function app in Azure. 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.If for some reason your function app isn't connected to an Application Insights instance, it's easy to do this integration in the Azure portal. Weitere Informationen finden Sie unter Aktivieren der Application Insights-Integration.To learn more, see Enable Application Insights integration.

Aktivieren von StreamingprotokollenEnable streaming logs

Sie können in einer Befehlszeilensitzung auf Ihrem lokalen Computer einen Stream von Protokolldateien anzeigen, die von Ihren Funktionen generiert werden.You can view a stream of log files being generated by your functions in a command-line session on your local computer.

Integriertes ProtokollstreamingBuilt-in log streaming

Verwenden Sie die Option logstream, um den Empfang von Streamingprotokollen einer bestimmten in Azure ausgeführten Funktions-App zu starten (siehe folgendes Beispiel):Use the logstream option to start receiving streaming logs of a specific function app running in Azure, as in the following example:

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.Built-in log streaming isn't yet enabled in Core Tools for function apps running on Linux in a Consumption plan. Für diese Hostingpläne müssen Sie stattdessen Live Metrics Stream verwenden, um die Protokolle nahezu in Echtzeit anzuzeigen.For these hosting plans, you instead need to use Live Metrics Stream to view the logs in near-real time.

Live Metrics StreamLive 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:You can view the Live Metrics Stream for your function app in a new browser window by including the --browser option, as in the following example:

func azure functionapp logstream <FunctionAppName> --browser

Diese Art von Streamingprotokollen erfordert, dass die Application Insights-Integration für Ihre Funktions-App aktiviert ist.This type of streaming logs requires that Application Insights integration be enabled for your function app.

Nächste SchritteNext steps

Erfahren Sie, wie Sie Azure Functions mithilfe Azure Functions Core Tools entwickeln, testen und veröffentlichen: Microsoft Learn-Modul. Azure Functions Core Tools ist Open Source und wird auf GitHub gehostet.Learn how to develop, test, and publish Azure Functions by using Azure Functions Core Tools Microsoft learn module Azure Functions Core Tools is open source and hosted on GitHub.
Um einen Fehler zu melden oder ein Feature anzufordern, öffnen Sie ein GitHub-Problem.To file a bug or feature request, open a GitHub issue.