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 zwei Versionen von Azure Functions Core Tools verfügbar.There are two 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:

  • Version 1.x: unterstützt Version 1.x der Laufzeit.Version 1.x: supports version 1.x of the runtime. Diese Version der Tools wird nur auf Windows-Computern unterstützt und wird über ein npm-Paket installiert.This version of the tools is only supported on Windows computers and is installed from an npm package. Mit dieser Version können Sie Funktionen in experimentellen Sprachen erstellen, die nicht offiziell unterstützt werden.With this version, you can create functions in experimental languages that are not officially supported. Weitere Informationen finden Sie unter In Azure Functions unterstützte Sprachen.For more information, see Supported languages in Azure Functions

  • Version 2.x: Unterstützt Version 2.x der Runtime.Version 2.x: supports version 2.x of the runtime. Diese Version unterstützt Windows, macOS und Linux.This version supports Windows, macOS, and Linux. Sie verwendet plattformspezifische Paket-Manager oder npm für die Installation.Uses platform-specific package managers or npm for installation.

Sofern nicht anders angegeben, gelten die Beispiele in diesem Artikel für Version 2.x.Unless otherwise noted, the examples in this article are for version 2.x.

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 2.xVersion 2.x

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

Wichtig

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

WindowsWindows

Die folgenden Schritte verwenden npm zum Installieren der Core Tools unter Windows.The following steps use npm to install Core Tools on Windows. Sie können auch Chocolatey verwenden.You can also use Chocolatey. Weitere Informationen finden Sie in der Infodatei zu den Core Tools.For more information, see the Core Tools readme.

  1. Installieren Sie Node.js (enthält npm).Install Node.js, which includes npm. Für Version 2.x der Tools werden nur Node.js 8.5 und höhere Versionen unterstützt.For version 2.x of the tools, only Node.js 8.5 and later versions are supported.

  2. Installieren Sie das Core Tools-Paket:Install the Core Tools package:

    npm install -g azure-functions-core-tools
    

    Es kann einige Minuten dauern, bis npm das Core Tools-Paket heruntergeladen und installiert hat.It may take a few minutes for npm to download and install the Core Tools package.

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

MacOS mit HomebrewMacOS with Homebrew

Die folgenden Schritte verwenden Homebrew zum Installieren der Core Tools unter macOS.The following steps use Homebrew to install the Core Tools on macOS.

  1. Installieren Sie Homebrew, sofern dies noch nicht geschehen ist.Install Homebrew, if it's not already installed.

  2. Installieren Sie das Core Tools-Paket:Install the Core Tools package:

    brew tap azure/functions
    brew install azure-functions-core-tools
    
  3. Wenn Sie nicht beabsichtigen, Erweiterungsbundles zu verwenden, installieren Sie das .NET Core 2.x SDK für macOS.If you do not plan to use extension bundles, install .NET Core 2.x SDK for macOS.

Linux (Ubuntu/Debian) mit APTLinux (Ubuntu/Debian) with APT

Die folgenden Schritte verwenden APT zum Installieren der Core Tools unter Ihrer Ubuntu/Debian Linux-Distribution.The following steps use APT to install Core Tools on your Ubuntu/Debian Linux distribution. Informationen zu anderen Linux-Distributionen finden Sie in der Infodatei zu den Core Tools.For other Linux distributions, see the Core Tools readme.

  1. Installieren Sie den GPG-Schlüssel des Microsoft-Paketrepositorys, um die Paketintegrität zu überprüfen:Install the Microsoft package repository GPG key, to validate package integrity:

    curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
    sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
    
  2. Richten Sie die Liste der .NET-Entwicklungsquellen ein, bevor Sie ein APT-Update ausführen.Set up the .NET development source list before doing an APT update.

    Führen Sie den folgenden Befehl aus, um die Liste der APT-Quellen für Ubuntu einzurichten:To set up the APT source list for Ubuntu, run this command:

    sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-$(lsb_release -cs)-prod $(lsb_release -cs) main" > /etc/apt/sources.list.d/dotnetdev.list'
    

    Führen Sie den folgenden Befehl aus, um die Liste der APT-Quellen für Debian einzurichten:To set up the APT source list for Debian, run this command:

    sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/debian/$(lsb_release -rs)/prod $(lsb_release -cs) main" > /etc/apt/sources.list.d/dotnetdev.list'
    
  3. Überprüfen Sie die Datei /etc/apt/sources.list.d/dotnetdev.list auf eine der entsprechenden Linux-Versionszeichenfolgen, die unten aufgeführt sind:Check the /etc/apt/sources.list.d/dotnetdev.list file for one of the appropriate Linux version strings listed below:

    Linux-DistributionLinux distribution VersionVersion
    Debian 10Debian 10 buster
    Debian 9Debian 9 stretch
    Debian 8Debian 8 jessie
    Ubuntu 18.10Ubuntu 18.10 cosmic
    Ubuntu 18.04Ubuntu 18.04 bionic
    Ubuntu 17.04Ubuntu 17.04 zesty
    Ubuntu 16.04/Linux Mint 18Ubuntu 16.04/Linux Mint 18 xenial
  4. Starten Sie das Update der APT-Quelle:Start the APT source update:

    sudo apt-get update
    
  5. Installieren Sie das Core Tools-Paket:Install the Core Tools package:

    sudo apt-get install azure-functions-core-tools
    
  6. Wenn Sie nicht beabsichtigen, Erweiterungsbundles zu verwenden, installieren Sie das .NET Core 2.x SDK für Linux.If you do not plan to use extension bundles, install .NET Core 2.x SDK for Linux.

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 2.x müssen Sie eine Standardsprache für das Projekt auswählen, wenn es initialisiert wird. Zudem werden für alle hinzugefügten Funktionen Vorlagen für die Standardsprache verwendet.Version 2.x requires you to select a default language for your project when it is initialized, and 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

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 2.x müssen Sie beim Ausführen des Befehls eine Runtime für das Projekt auswählen.In version 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 2.x verfügbar sind, sofern nicht anders angegeben:func init supports the following options, which are version 2.x-only, unless otherwise noted:

OptionOption BESCHREIBUNGDescription
--csharp
--dotnet
Initialisiert ein C#-Klassenbibliotheksprojekt (.cs).Initializes a C# class library (.cs) project.
--csx Initialisiert ein C#-Skriptprojekt (.csx).Initializes a C# script (.csx) project. In nachfolgenden Befehlen müssen Sie --csx angeben.You must specify --csx in subsequent commands.
--docker Erstellt ein Dockerfile für einen Container mithilfe eines Basisimages, das auf dem ausgewählten Wert für --worker-runtime basiert.Create 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.
--java Initialisiert ein Java-Projekt.Initializes a Java project.
--javascript
--node
Initialisiert ein JavaScript-Projekt.Initializes a JavaScript project.
--no-source-control
-n
Verhindert die standardmäßige Erstellung eines Git-Repositorys in Version 1.x.Prevents the default creation of a Git repository in version 1.x. In Version 2.x wird das Git-Repository nicht standardmäßig erstellt.In version 2.x, the git repository isn't created by default.
--powershell Initialisiert ein PowerShell-Projekt.Initializes a PowerShell project.
--python Initialisiert ein Python-Projekt.Initializes a Python project.
--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.
--typescript Initialisiert ein TypeScript-Projekt.Initializes a TypeScript project.
--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, java, javascript, node (JavaScript), powershell, python und typescript.Supported values are: csharp, dotnet, java, javascript,node (JavaScript), powershell, python, and typescript. Wird kein Wert festgelegt, werden Sie während der Initialisierung zur Auswahl der Runtime aufgefordert.When not set, you are prompted to choose your runtime during initialization.

Wichtig

In 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 of the Core Tools creates 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 Zeitauslösern werden Functions-Bindungen in der Laufzeitversion 2.x als Erweiterungspakete implementiert.With the exception of HTTP and timer triggers, Functions bindings in runtime version 2.x are implemented as extension packages. In Version 2.x der Azure Functions Runtime müssen Sie die in Ihren Funktionen für die Bindungstypen verwendeten Erweiterungen explizit registrieren.In version 2.x of the Azure Functions runtime, you have to explicitly register the extensions for the binding types used in your functions. Die Ausnahmen hierbei sind HTTP-Bindungen und Zeitauslöser, die keine Erweiterungen erfordern.The exceptions to this are HTTP bindings and timer triggers, which do not require extensions.

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.

ErweiterungsbündelExtension 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 „functions.json“ Bindungen hinzufügen.You should add extension bundles to the host.json before you add bindings to the functions.json file.

Registrieren einzelner ErweiterungenRegister individual extensions

Wenn Sie Erweiterungen installieren müssen, die nicht in einem Bündel enthalten sind, können Sie einzelne Erweiterungspakete für bestimmte Bindungen manuell registrieren.If you need to install extensions that aren't in a bundle, you can manually register individual extension packages for specific bindings.

Hinweis

Um Erweiterungen mithilfe von func extensions install manuell zu registrieren, müssen Sie das .NET Core 2.x SDK installiert haben.To manually register extensions by using func extensions install, you must have the .NET Core 2.x SDK installed.

Nachdem Sie Ihre Datei function.json aktualisiert haben, sodass sie alle von der Funktion benötigten Bindungen einschließt, führen Sie den folgenden Befehl im Projektordner aus.After you have updated your function.json file to include all the bindings that your function needs, run the following command in the project folder.

func extensions install

Der Befehl liest die Datei function.json, um zu ermitteln, welche Pakete Sie benötigen, installiert diese und erzeugt das Erweiterungenprojekt neu.The command reads the function.json file to see which packages you need, installs them, and rebuilds the extensions project. 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.

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>"
  },
  "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.
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.
AzureWebJobsStorage ist eine erforderliche App-Einstellung für andere Trigger als HTTP.AzureWebJobsStorage is a required app setting for triggers other than HTTP.
Für Version 2.x der Functions-Runtime ist die Einstellung [FUNCTIONS_WORKER_RUNTIME] erforderlich, die mit Core Tools für Ihr Projekt generiert wird.Version 2.x of the Functions runtime requires the [FUNCTIONS_WORKER_RUNTIME] setting, which is generated for your project by Core Tools.
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.
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 (__). Diese Zeichen sind für die Runtime reserviert.These characters are reserved by the runtime.
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 Sammlung.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.

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-settings bei 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“ angeben.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 Speicheremulator für die Entwicklung verwendet wird, empfiehlt es sich, einen Test mit einer tatsächlichen Speicherverbindung durchzuführen.Even when using the 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 Storagea 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, wählen Sie Ihr Speicherkonto aus, und kopieren Sie die primäre oder sekundäre Verbindungszeichenfolge.In the Explorer, expand your subscription, select your storage account, and copy the primary or secondary connection string.

    Kopieren der Verbindungszeichenfolge im Storage-Explorer

  • Verwenden Sie Core Tools zum Herunterladen der Verbindungszeichenfolge aus Azure mit einem der folgenden Befehle:Use Core Tools 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 are not already signed in to Azure, you are prompted to do so.

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 2.x werden Sie beim Ausführen von func new aufgefordert, eine Vorlage in der Standardsprache der Funktions-App auszuwählen. Dann werden Sie außerdem aufgefordert, einen Namen für die Funktion auszuwählen.In version 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) Generiert dieselben C#-Skriptvorlagen (.csx), die in Version 1.x und im Portal verwendet wurden.(Version 2.x) Generates the same C# script (.csx) templates used in version 1.x and in the portal.
--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 in Version 2.x, oder wählen Sie eine für die Workerruntime geeignete Sprache.In version 2.x, do not use this option or choose a language that matches the worker runtime.
--name -n Der Funktionsname.The function name.
--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.

Version 2.xVersion 2.x

In Version 2.x der Runtime variiert der Startbefehl je nach Projektsprache.In version 2.x of the runtime, the start command varies, depending on your project language.

C#C#

func start --build

JavaScriptJavaScript

func start

TypeScriptTypeScript

npm install
npm start     

Version 1.xVersion 1.x

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. Nur Version 2.x.Version 2.x only.
--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. Nur Version 2.x.Version 2.x only.
--cors-credentials Ursprungsübergreifende authentifizierte Anforderungen (d.h. Cookies und der Authentifizierungsheader) sind nur für Version 2.x zugelassen.Allow cross-origin authenticated requests (i.e. cookies and the Authentication header) Version 2.x only.
--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. Nur Version 2.x.Version 2.x only.
--nodeDebugPort -n Der Port, den der Knotendebugger verwendet.The port for the node debugger to use. Standardwert: Ein Wert aus „launch.json“ oder 5858.Default: A value from launch.json or 5858. Nur Version 1.x.Version 1.x only.
--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. Nur Version 2.x.Version 2.x only.
--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 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 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 Authentifizierung für HTTP-Endpunkte nicht erzwungen.When running locally, authentication 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 und Webhooks können Sie Funktionen lokal testen, indem Sie einen Verwaltungsendpunkt aufrufen.For all kinds of functions other than HTTP triggers and webhooks, 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. 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/QueueTriggerJS

Verwenden des Befehls func run in Version 1.xUsing the func run command in version 1.x

Wichtig

Der Befehl func run wird in Version 2.x der Tools nicht unterstützt.The func run command is not supported in version 2.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.

Sie können eine Funktion auch direkt aufrufen, indem Sie func run <FunctionName> verwenden, und Eingabedaten für die Funktion bereitstellen.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 Inlineinhalt.Inline content.
--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 Wartezeit (in Sekunden), bis der lokale Functions-Host bereit ist.Time to wait (in seconds) until the local Functions host is ready.
--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.

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.

Bereitstellung (Projektdateien)Deployment (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>

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 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, 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 standardmäßig Version 2.x der Functions-Laufzeit.When you create a function app in the Azure portal, it uses version 2.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 beide Versionen (1.x und 2.x):The following publish options apply for both versions, 1.x and 2.x:

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 Speicheremulator verwenden, ändern Sie zunächst die App-Einstellung in eine tatsächliche Speicherverbindung.If you are using the 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 in Version 2.x unterstützt:The following publish options are only supported in version 2.x:

OptionOption BESCHREIBUNGDescription
--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
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 Keine .NET-Klassenbibliotheksfunktionen erstellen.Don't build .NET class library functions.
--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.

Bereitstellung (benutzerdefinierter Container)Deployment (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.

Aktivieren der Application Insights-IntegrationEnable Application Insights integration

Wenn Sie eine Funktions-App im Azure-Portal erstellen, wird die Application Insights-Integration standardmäßig für Sie erledigt.When you create a function app in the Azure portal, the Application Insights integration is done for you by default. Wenn Sie Ihre Funktions-App mithilfe der Azure CLI erstellen, erfolgt die Integration in Ihre Funktions-App in Azure nicht.However, when you create your function app by using the Azure CLI, the integration in your function app in Azure isn't done.

Mit Functions ist es einfach, die Application Insights-Integration über das Azure-Portal einer Funktionen-App hinzuzufügen.Functions makes it easy to add Application Insights integration to a function app from the Azure portal.

  1. Wählen Sie im Portal die Optionen Alle Dienste > Funktionen-Apps und dann Ihre Funktions-App aus. Wählen Sie anschließend oben im Fenster das Banner Application Insights aus.In the portal, select All services > Function Apps, select your function app, and then select the Application Insights banner at the top of the window

    Aktivieren von Application Insights über das Portal

  2. Erstellen Sie eine Application Insights-Ressource. Verwenden Sie dazu die Einstellungen, die in der Tabelle unterhalb der Abbildung angegeben sind:Create an Application Insights resource by using the settings specified in the table below the image.

    Erstellen einer Application Insights-Ressource

    EinstellungSetting Empfohlener WertSuggested value BeschreibungDescription
    NameName Eindeutiger App-NameUnique app name Es ist am einfachsten, den gleichen Namen wie für Ihre Funktionen-App zu verwenden, der in Ihrem Abonnement eindeutig sein muss.It's easiest to use the same name as your function app, which must be unique in your subscription.
    LocationLocation Europa, WestenWest Europe Verwenden Sie nach Möglichkeit dieselbe Region wie für Ihre Funktions-App (oder eine Region in der Nähe).If possible, use the same region as your function app, or one that's close to that region.
  3. Klicken Sie auf OK.Select OK. Die Application Insights-Ressource wird in derselben Ressourcengruppe und unter demselben Abonnement wie Ihre Funktionen-App erstellt.The Application Insights resource is created in the same resource group and subscription as your function app. Schließen Sie nach der Erstellung der Ressource das Application Insights-Fenster.After the resource is created, close the Application Insights window.

  4. Wählen Sie in Ihrer Funktions-App die Option Anwendungseinstellungen aus, und scrollen Sie dann nach unten zu Anwendungseinstellungen.Back in your function app, select Application settings, and then scroll down to Application settings. Wenn die Einstellung APPINSIGHTS_INSTRUMENTATIONKEY angezeigt wird, bedeutet dies, dass die Application Insights-Integration für Ihre unter Azure ausgeführte Funktions-App aktiviert ist.If you see a setting named APPINSIGHTS_INSTRUMENTATIONKEY, Application Insights integration is enabled for your function app running in Azure.

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.

Native StreamingprotokolleNative streaming logs

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>

Live Metrics StreamLive Metrics Stream

Sie können auch den 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 also 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

Für diese Art von Streamingprotokollen müssen Sie für Ihre Funktions-App die Application Insights-Integration aktivieren.This type of streaming logs requires that you enable Application Insights integration for your function app.

Nächste SchritteNext steps

Azure Functions Core Tools ist ein Open Source-Programm und wird auf GitHub gehostet.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.