Entwickeln von Azure Functions mithilfe von Visual StudioDevelop Azure Functions using Visual Studio

In Visual Studio können Sie C#-Klassenbibliotheksfunktionen entwickeln, testen und in Azure bereitstellen.Visual Studio lets you develop, test, and deploy C# class library functions to Azure. Wenn Sie zum ersten Mal mit Azure Functions arbeiten, finden Sie unter Einführung in Azure Functions weitere Informationen.If this experience is your first with Azure Functions, see An introduction to Azure Functions.

Visual Studio bietet die folgenden Vorteile beim Entwickeln von Funktionen:Visual Studio provides the following benefits when you develop your functions:

  • Bearbeiten, Erstellen und Ausführen von Funktionen auf Ihrem lokalen Entwicklungscomputer.Edit, build, and run functions on your local development computer.
  • Veröffentlichen Sie Ihr Azure Functions-Projekt direkt in Azure, und erstellen Sie Azure-Ressourcen ganz nach Bedarf.Publish your Azure Functions project directly to Azure, and create Azure resources as needed.
  • Verwenden Sie C#-Attribute, um Funktionsbindungen direkt im C#-Code zu deklarieren.Use C# attributes to declare function bindings directly in the C# code.
  • Entwickeln und Bereitstellen vorkompilierter C#-Funktionen.Develop and deploy pre-compiled C# functions. Vorkompilierte Funktionen bieten eine bessere Leistung beim Kaltstart als auf skriptbasierende Funktionen von C#.Pre-complied functions provide a better cold-start performance than C# script-based functions.
  • Codieren Ihrer Funktionen in C# während Sie von allen Vorteilen der Entwicklung mit Visual Studio profitieren.Code your functions in C# while having all of the benefits of Visual Studio development.

Dieser Artikel erläutert detailliert, wie Sie Visual Studio verwenden, um C#-Klassenbibliotheksfunktionen zu entwickeln und in Azure zu veröffentlichen.This article provides details about how to use Visual Studio to develop C# class library functions and publish them to Azure. Bevor Sie diesen Artikel lesen, sollten Sie den Functions-Schnellstart für Visual Studio abschließen.Before you read this article, consider completing the Functions quickstart for Visual Studio.

Sofern nicht anders angegeben, gelten die gezeigten Prozeduren und Beispiele für Visual Studio 2019.Unless otherwise noted, procedures and examples shown are for Visual Studio 2019.

VoraussetzungenPrerequisites

  • Azure Functions-Tools.Azure Functions Tools. Um Azure Functions-Tools hinzuzufügen, schließen Sie die Workload Azure-Entwicklung in Ihre Installation von Visual Studio ein.To add Azure Function Tools, include the Azure development workload in your Visual Studio installation. Azure Functions-Tools sind ab Visual Studio 2017 in der Workload „Azure-Entwicklung“ enthalten.Azure Functions Tools is available in the Azure development workload starting with Visual Studio 2017.

  • Andere Ressourcen, die Sie benötigen, z. B. ein Azure Storage-Konto, werden während des Veröffentlichungsprozesses in Ihrem Abonnement erstellt.Other resources that you need, such as an Azure Storage account, are created in your subscription during the publishing process.

  • Wenn Sie kein Azure-Abonnement besitzen, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.If you don't have an Azure subscription, create a free account before you begin.

Hinweis

In Visual Studio 2017 werden mit der Workload „Azure-Entwicklung“ Azure Functions-Tools als separate Erweiterung installiert.In Visual Studio 2017, the Azure development workload installs Azure Functions Tools as a separate extension. Wenn Sie Ihre Installation von Visual Studio 2017 aktualisieren, stellen Sie sicher, dass Sie die neueste Version der Azure Functions-Tools verwenden.When you update your Visual Studio 2017 installation, make sure that you're using the most recent version of the Azure Functions tools. In den folgenden Abschnitten wird beschrieben, wie Sie Ihre Azure Functions-Tools-Erweiterung in Visual Studio 2017 überprüfen und ggf. aktualisieren.The following sections show you how to check and (if needed) update your Azure Functions Tools extension in Visual Studio 2017.

Überspringen Sie diese Abschnitte, wenn Sie Visual Studio 2019 verwenden.Skip these sections if you're using Visual Studio 2019.

Überprüfen der Toolversion in Visual Studio 2017Check your tools version in Visual Studio 2017

  1. Wählen Sie im Menü Extras auf Erweiterungen und Updates.From the Tools menu, choose Extensions and Updates. Erweitern Sie Installiert > Tools, und wählen Sie dann Azure Functions und Webauftragstools aus.Expand Installed > Tools, and then choose Azure Functions and Web Jobs Tools.

    Überprüfen der Functions-Toolsversion

  2. Notieren Sie sich die installierte Version, und vergleichen Sie diese Version mit der aktuellen, die in den Versionshinweisen aufgeführt ist.Note the installed Version and compare this version with the latest version listed in the release notes.

  3. Wenn Ihre Version älter ist, aktualisieren Sie Ihre Tools in Visual Studio, wie im folgenden Abschnitt gezeigt.If your version is older, update your tools in Visual Studio as shown in the following section.

Aktualisieren der Tools in Visual Studio 2017Update your tools in Visual Studio 2017

  1. Erweitern Sie im Dialogfeld Erweiterungen und Updates die Option Updates > Visual Studio Marketplace, wählen Sie Azure Functions und Webauftragstools, und wählen Sie Aktualisieren.In the Extensions and Updates dialog, expand Updates > Visual Studio Marketplace, choose Azure Functions and Web Jobs Tools and select Update.

    Aktualisieren der Functions-Toolsversion

  2. Nachdem das Toolupdate heruntergeladen wurde, wählen Sie Schließen aus, und schließen Sie Visual Studio, damit die Tools mit dem VSIX-Installationsprogramm aktualisiert werden.After the tools update is downloaded, select Close, and then close Visual Studio to trigger the tools update with VSIX Installer.

  3. Wählen Sie im VSIX-Installationsprogramm Ändern aus, um die Tools zu aktualisieren.In VSIX Installer, choose Modify to update the tools.

  4. Wählen Sie nach Abschluss des Updates Schließen aus, und starten Sie Visual Studio neu.After the update is complete, choose Close, and then restart Visual Studio.

Hinweis

In Visual Studio 2019 und höher wird die Azure Functions-Tools-Erweiterung im Rahmen von Visual Studio aktualisiert.In Visual Studio 2019 and later, the Azure Functions tools extension is updated as part of Visual Studio.

Erstellen eines Azure Functions-ProjektsCreate an Azure Functions project

Mit der Azure Functions-Projektvorlage in Visual Studio wird ein Projekt erstellt, das Sie in einer Funktions-App in Azure veröffentlichen können.The Azure Functions project template in Visual Studio creates a project that you can publish to a function app in Azure. Sie können mit einer Funktions-App Funktionen zu logischen Einheiten gruppieren. Dies erleichtert die Verwaltung, Bereitstellung, Skalierung und Freigabe von Ressourcen.You can use a function app to group functions as a logical unit for easier management, deployment, scaling, and sharing of resources.

  1. Wählen Sie im Visual Studio-Menü Datei > Neu > Projekt aus.From the Visual Studio menu, select File > New > Project.

  2. Geben Sie unter Neues Projekt erstellen den Suchbegriff functions in das Suchfeld ein, und wählen Sie die Vorlage Azure Functions und anschließend Weiter aus.In Create a new project, enter functions in the search box, choose the Azure Functions template, and then select Next.

  3. Geben Sie unter Neues Projekt konfigurieren im Feld Projektname einen Namen für Ihr Projekt ein, und wählen Sie anschließend Erstellen aus.In Configure your new project, enter a Project name for your project, and then select Create. Der Name der Funktions-App muss als C#-Namespace gültig sein, verwenden Sie daher keine Unterstriche, Bindestriche oder andere nicht alphanumerische Zeichen.The function app name must be valid as a C# namespace, so don't use underscores, hyphens, or any other nonalphanumeric characters.

  4. Verwenden Sie für die Einstellungen zum Erstellen einer neuen Azure Functions-Anwendung die Werte in der folgenden Tabelle:For the Create a new Azure Functions application settings, use the values in the following table:

    EinstellungSetting WertValue BESCHREIBUNGDescription
    Functions-RuntimeFunctions runtime Azure Functions v3
    (.NET Core)
    Azure Functions v3
    (.NET Core)
    Durch diesen Wert wird ein Funktionsprojekt mit Version 3.x der Runtime von Azure Functions erstellt, die .NET Core 3.x unterstützt.This value creates a function project that uses the version 3.x runtime of Azure Functions, which supports .NET Core 3.x. Azure Functions 1.x unterstützt .NET Framework.Azure Functions 1.x supports the .NET Framework. Weitere Informationen finden Sie unter Einstellen von Runtimeversionen von Azure Functions als Ziel.For more information, see Azure Functions runtime versions overview.
    FunktionsvorlageFunction template HTTP-TriggerHTTP trigger Mit diesem Wert wird eine Funktion erstellt, die durch eine HTTP-Anforderung ausgelöst wird.This value creates a function triggered by an HTTP request.
    Speicherkonto (AzureWebJobsStorage)Storage account (AzureWebJobsStorage) SpeicheremulatorStorage emulator Da für eine Azure-Funktion ein Speicherkonto erforderlich ist, wird ein Speicherkonto zugewiesen oder erstellt, wenn Sie Ihr Projekt in Azure veröffentlichen.Because an Azure Function requires a storage account, one is assigned or created when you publish your project to Azure. Von HTTP-Triggern wird keine Azure Storage-Kontoverbindungszeichenfolge verwendet. Für alle anderen Triggertypen ist dagegen eine gültige Azure Storage-Kontoverbindungszeichenfolge erforderlich.An HTTP trigger doesn't use an Azure Storage account connection string; all other trigger types require a valid Azure Storage account connection string.
    AutorisierungsstufeAuthorization level AnonymAnonymous Die erstellte Funktion kann von jedem Client ausgelöst werden, ohne dass ein Schlüssel angegeben werden muss.The created function can be triggered by any client without providing a key. Diese Autorisierungseinstellung erleichtert Ihnen das Testen Ihrer neuen Funktion.This authorization setting makes it easy to test your new function. Weitere Informationen zu Schlüsseln und zur Autorisierung finden Sie unter Autorisierungsschlüssel sowie in der Übersicht über HTTP-Trigger und -Bindungen in Azure Functions.For more information about keys and authorization, see Authorization keys and HTTP and webhook bindings.

    Azure Functions-Projekteinstellungen

    Stellen Sie sicher, dass Autorisierungsstufe auf Anonym festgelegt ist.Make sure you set the Authorization level to Anonymous. Bei Verwendung der Standardebene Funktion muss in Anforderungen für den Zugriff auf den Funktionsendpunkt der Funktionsschlüssel angegeben werden.If you choose the default level of Function, you're required to present the function key in requests to access your function endpoint.

  5. Wählen Sie Erstellen aus, um das Funktionsprojekt und die HTTP-Triggerfunktion zu erstellen.Select Create to create the function project and HTTP trigger function.

Nach dem Erstellen eines Azure Functions-Projekts erstellt die Projektvorlage ein C#-Projekt, installiert das NuGet-Paket Microsoft.NET.Sdk.Functions und legt das Zielframework fest.After you create an Azure Functions project, the project template creates a C# project, installs the Microsoft.NET.Sdk.Functions NuGet package, and sets the target framework. Das neue Projekt enthält die folgenden Dateien:The new project has the following files:

  • host.json: Ermöglicht das Konfigurieren des Functions-Hosts.host.json: Lets you configure the Functions host. Diese Einstellungen gelten für die lokale Ausführung und die Ausführung in Azure.These settings apply both when running locally and in Azure. Weitere Informationen finden Sie in der host.json-Referenz.For more information, see host.json reference.

  • local.settings.json: Behält Einstellungen beim lokalen Ausführen von Funktionen bei.local.settings.json: Maintains settings used when running functions locally. Diese Einstellungen werden bei der Ausführung in Azure nicht verwendet.These settings aren't used when running in Azure. Weitere Informationen finden Sie unter Datei für lokale Einstellungen.For more information, see Local settings file.

    Wichtig

    Da die Datei „local.settings.json“ Geheimnisse enthalten kann, müssen Sie sie aus der Quellcodeverwaltung Ihres Projekts ausschließen.Because the local.settings.json file can contain secrets, you must exclude it from your project source control. Stellen Sie sicher, dass die Einstellung In Ausgabeverzeichnis kopieren für diese Datei auf Kopieren, falls aktueller festgelegt ist.Ensure the Copy to Output Directory setting for this file is set to Copy if newer.

Weitere Informationen finden Sie unter Funktionsklassenbibliotheks-Projekt.For more information, see Functions class library project.

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.
Ab 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 and higher 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 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.

Visual Studio lädt die Einstellungen in „local.settings.json“ nicht automatisch hoch, wenn Sie das Projekt veröffentlichen.Visual Studio doesn't automatically upload the settings in local.settings.json when you publish the project. Um sicherzustellen, dass diese Einstellungen auch in Ihrer Funktions-App in Azure vorhanden sind, laden Sie sie nach dem Veröffentlichen Ihres Projekts hoch.To make sure that these settings also exist in your function app in Azure, upload them after you publish your project. Weitere Informationen finden Sie unter Einstellungen für Funktions-Apps.For more information, see Function app settings. Die Werte in einer ConnectionStrings-Sammlung werden nie veröffentlicht.The values in a ConnectionStrings collection are never published.

Ihr Code kann die Werte für Funktions-App-Einstellungen auch als Umgebungsvariablen lesen.Your code can also read the function app settings values as environment variables. Weitere Informationen finden Sie unter Umgebungsvariablen.For more information, see Environment variables.

Konfigurieren des Projekts für die lokale EntwicklungConfigure the project for local development

Die Functions-Laufzeit verwendet intern ein Azure-Speicherkonto.The Functions runtime uses an Azure Storage account internally. Legen Sie für alle Triggertypen außer HTTP und Webhooks den Schlüssel Values.AzureWebJobsStorage auf eine gültige Verbindungszeichenfolge für ein Azure Storage-Konto fest.For all trigger types other than HTTP and webhooks, set the Values.AzureWebJobsStorage key to a valid Azure Storage account connection string. Ihre Funktions-App kann auch den Azure-Speicheremulator für die Verbindungseinstellung AzureWebJobsStorage verwenden, die für das Projekt erforderlich ist.Your function app can also use the Azure storage emulator for the AzureWebJobsStorage connection setting that's required by the project. Um den Emulator zu verwenden, legen Sie den Wert für AzureWebJobsStorage auf UseDevelopmentStorage=true fest.To use the emulator, set the value of AzureWebJobsStorage to UseDevelopmentStorage=true. Ändern Sie diese Einstellung vor der Bereitstellung in eine tatsächliche Verbindungszeichenfolge für ein Speicherkonto.Change this setting to an actual storage account connection string before deployment.

So legen Sie die Speicherkonto-Verbindungszeichenfolge fest:To set the storage account connection string:

  1. Wählen Sie in Visual Studio Ansicht > Cloud-Explorer aus.In Visual Studio, select View > Cloud Explorer.

  2. Erweitern Sie in Cloud-Explorer die Option Speicherkonten, und wählen Sie Ihr Speicherkonto aus.In Cloud Explorer, expand Storage Accounts, and then select your storage account. Kopieren Sie auf der Registerkarte Eigenschaften den Wert Primäre Verbindungszeichenfolge.In the Properties tab, copy the Primary Connection String value.

  3. Öffnen Sie in Ihrem Projekt die Datei „local.settings.json“, und legen Sie den Wert des Schlüssels AzureWebJobsStorage auf die kopierte Verbindungszeichenfolge fest.In your project, open the local.settings.json file and set the value of the AzureWebJobsStorage key to the connection string you copied.

  4. Wiederholen Sie den vorherigen Schritt zum Hinzufügen von eindeutigen Schlüsseln zum Array Values für alle anderen Verbindungen, die für Ihre Funktionen erforderlich sind.Repeat the previous step to add unique keys to the Values array for any other connections required by your functions.

Hinzufügen einer Funktion zu Ihrem ProjektAdd a function to your project

In C#-Klassenbibliotheksfunktionen werden die von der Funktion verwendeten Bindungen durch Anwendung von Attributen im Code definiert.In C# class library functions, the bindings used by the function are defined by applying attributes in the code. Wenn Sie Funktionstrigger aus den bereitgestellten Vorlagen erstellen, werden die Triggerattribute für Sie angewendet.When you create your function triggers from the provided templates, the trigger attributes are applied for you.

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten, und wählen Sie Hinzufügen > Neues Element aus.In Solution Explorer, right-click your project node and select Add > New Item.

  2. Wählen Sie Azure-Funktion aus, geben Sie einen Namen für die Klasse ein, und wählen Sie dann Hinzufügen aus.Select Azure Function, enter a Name for the class, and then select Add.

  3. Wählen Sie den Trigger aus, legen Sie die Bindungseigenschaften fest, und wählen Sie OK aus.Choose your trigger, set the binding properties, and then select OK. Im folgenden Beispiel werden die Einstellungen zum Erstellen einer Queue Storage-Triggerfunktion gezeigt.The following example shows the settings for creating a Queue storage trigger function.

    Erstellen einer Queue Storage-Triggerfunktion

    In diesem Triggerbeispiel wird eine Verbindungszeichenfolge mit dem Schlüssel QueueStorage verwendet.This trigger example uses a connection string with a key named QueueStorage. Definieren Sie diese Einstellung für die Verbindungszeichenfolge in der Datei local.settings.json.Define this connection string setting in the local.settings.json file.

  4. Untersuchen Sie die neu hinzugefügte Klasse.Examine the newly added class. Es wird eine statische Run()-Methode angezeigt, der das FunctionName-Attribut zugewiesen wird.You see a static Run() method that's attributed with the FunctionName attribute. Dieses Attribut gibt an, dass die Methode den Einstiegspunkt für die Funktion darstellt.This attribute indicates that the method is the entry point for the function.

    Die folgende C#-Klasse stellt beispielsweise eine einfache Queue Storage-Triggerfunktion dar:For example, the following C# class represents a basic Queue storage trigger function:

    using System;
    using Microsoft.Azure.WebJobs;
    using Microsoft.Azure.WebJobs.Host;
    using Microsoft.Extensions.Logging;
    
    namespace FunctionApp1
    {
        public static class Function1
        {
            [FunctionName("QueueTriggerCSharp")]
            public static void Run([QueueTrigger("myqueue-items", 
                Connection = "QueueStorage")]string myQueueItem, ILogger log)
            {
                log.LogInformation($"C# Queue trigger function processed: {myQueueItem}");
            }
        }
    }
    

Ein bindungsspezifisches Attribut wird auf jeden Bindungsparameter angewendet, der der Einstiegspunktmethode bereitgestellt wird.A binding-specific attribute is applied to each binding parameter supplied to the entry point method. Das Attribut verwendet die Bindungsinformationen als Parameter.The attribute takes the binding information as parameters. Im vorherigen Beispiel wurde auf den ersten Parameter ein QueueTrigger-Attribut angewandt, das auf eine Queue Storage-Triggerfunktion hinweist.In the previous example, the first parameter has a QueueTrigger attribute applied, indicating a Queue storage trigger function. Die Namen der Warteschlange und der Einstellung für die Verbindungszeichenfolge werden als Parameter an das QueueTrigger-Attribut übergeben.The queue name and connection string setting name are passed as parameters to the QueueTrigger attribute. Weitere Informationen finden Sie unter Azure Queue Storage-Bindungen für Azure Functions.For more information, see Azure Queue storage bindings for Azure Functions.

Verwenden Sie das oben angegebene Verfahren, um Ihrem Funktions-App-Projekt weitere Funktionen hinzuzufügen.Use the above procedure to add more functions to your function app project. Jede Funktion im Projekt kann über einen anderen Trigger verfügen, aber einer Funktion muss genau ein Trigger zugeordnet sein.Each function in the project can have a different trigger, but a function must have exactly one trigger. Weitere Informationen finden Sie unter Konzepte für Azure Functions-Trigger und -Bindungen.For more information, see Azure Functions triggers and bindings concepts.

Hinzufügen von BindungenAdd bindings

Wie bei Triggern auch, werden Eingabe- und Ausgabebindungen Ihrer Funktion als Bindungsattribute hinzugefügt.As with triggers, input and output bindings are added to your function as binding attributes. Fügen Sie Bindungen einer Funktion wie folgt hinzu:Add bindings to a function as follows:

  1. Stellen Sie sicher, dass Sie das Projekt für lokale Entwicklung konfiguriert haben.Make sure you've configured the project for local development.

  2. Fügen Sie für die entsprechende Bindung das geeignete NuGet-Erweiterungspaket hinzu.Add the appropriate NuGet extension package for the specific binding.

    Weitere Informationen finden Sie unter C#-Klassenbibliothek mit Visual Studio.For more information, see C# class library with Visual Studio. Die bindungsspezifischen NuGet-Paketanforderungen finden Sie im Referenzartikel für die Bindung.Find the binding-specific NuGet package requirements in the reference article for the binding. Paketanforderungen für den Event Hubs-Trigger finden Sie im Referenzartikel zu Event Hubs-Bindungen.For example, find package requirements for the Event Hubs trigger in the Event Hubs binding reference article.

  3. Falls für die Bindung bestimmte App-Einstellungen erforderlich sind, können Sie diese der Sammlung Values in der Datei mit lokalen Einstellungen hinzufügen.If there are app settings that the binding needs, add them to the Values collection in the local setting file.

    Die-Funktion verwendet diese Werte, wenn sie lokal ausgeführt wird.The function uses these values when it runs locally. Wenn die Funktion in der Funktions-App in Azure ausgeführt wird, werden die Einstellungen für Funktions-Apps verwendet.When the function runs in the function app in Azure, it uses the function app settings.

  4. Fügen Sie der Methodensignatur das entsprechende Bindungsattribut hinzu.Add the appropriate binding attribute to the method signature. Im folgenden Beispiel löst eine Warteschlangennachricht die Funktion aus, und die Ausgabebindung erstellt eine neue Warteschlangennachricht mit demselben Text in einer anderen Warteschlange.In the following example, a queue message triggers the function, and the output binding creates a new queue message with the same text in a different queue.

    public static class SimpleExampleWithOutput
    {
        [FunctionName("CopyQueueMessage")]
        public static void Run(
            [QueueTrigger("myqueue-items-source", Connection = "AzureWebJobsStorage")] string myQueueItem, 
            [Queue("myqueue-items-destination", Connection = "AzureWebJobsStorage")] out string myQueueItemCopy,
            ILogger log)
        {
            log.LogInformation($"CopyQueueMessage function processed: {myQueueItem}");
            myQueueItemCopy = myQueueItem;
        }
    }
    

    Die Verbindung mit dem Warteschlangenspeicher stammt aus der Einstellung AzureWebJobsStorage.The connection to Queue storage is obtained from the AzureWebJobsStorage setting. Weitere Informationen finden Sie im Referenzartikel für die spezifische Bindung.For more information, see the reference article for the specific binding.

Die folgende Tabelle zeigt die Bindungen, die in den Hauptversionen der Azure Functions-Runtime unterstützt werden:This table shows the bindings that are supported in the major versions of the Azure Functions runtime:

typeType 1.x1.x 2.x und höher12.x and higher1 TriggerTrigger EingabeInput OutputOutput
Blob StorageBlob storage
Cosmos DBCosmos DB
Event GridEvent Grid
Event HubsEvent Hubs
HTTP und WebhooksHTTP & webhooks
IoT HubIoT Hub
Microsoft Graph
Excel-Tabellen
Microsoft Graph
Excel tables
Microsoft Graph
OneDrive-Dateien
Microsoft Graph
OneDrive files
Microsoft Graph
Outlook-E-Mail
Microsoft Graph
Outlook email
Microsoft Graph
Ereignisse
Microsoft Graph
events
Microsoft Graph
Authentifizierungstoken
Microsoft Graph
Auth tokens
Mobile AppsMobile Apps
Notification HubsNotification Hubs
Queue StorageQueue storage
SendGridSendGrid
Service BusService Bus
SignalRSignalR
TabellenspeicherungTable storage
ZeitgeberTimer
TwilioTwilio

1 Ab Version 2.x der Runtime müssen alle Bindungen mit Ausnahme von HTTP und Timer registriert werden.1 Starting with the version 2.x runtime, all bindings except HTTP and Timer must be registered. Siehe Registrieren von Bindungserweiterungen.See Register binding extensions.

Testen von FunktionenTesting functions

Mit Azure Functions Core-Tools können Sie ein Azure Functions-Projekt auf dem lokalen Entwicklungscomputer ausführen.Azure Functions Core Tools lets you run Azure Functions project on your local development computer. Weitere Informationen finden Sie unter Arbeiten mit Azure Functions Core Tools.For more information, see Work with Azure Functions Core Tools. Sie werden beim ersten Starten einer Funktion in Visual Studio zum Installieren dieser Tools aufgefordert.You're prompted to install these tools the first time you start a function from Visual Studio.

So testen Sie Ihre Funktion in Visual StudioTo test your function in Visual Studio:

  1. Drücken Sie F5.Press F5. Akzeptieren Sie die entsprechende Aufforderung von Visual Studio zum Herunterladen und Installieren der Azure Functions Core (CLI)-Tools.If prompted, accept the request from Visual Studio to download and install Azure Functions Core (CLI) tools. Sie müssen möglicherweise auch eine Firewallausnahme aktivieren, damit die Tools HTTP-Anforderungen verarbeiten können.You might also need to enable a firewall exception so that the tools can handle HTTP requests.

  2. Wenn das Projekt ausgeführt wird, testen Sie Ihren Code wie eine bereitgestellte Funktion.With the project running, test your code as you would test a deployed function.

    Weitere Informationen finden Sie unter Strategien zum Testen Ihres Codes in Azure Functions.For more information, see Strategies for testing your code in Azure Functions. Wenn Sie Visual Studio im Debuggingmodus ausführen, werden wie erwartet Breakpoints erreicht.When you run Visual Studio in debug mode, breakpoints are hit as expected.

Veröffentlichen in AzurePublish to Azure

Bei der Veröffentlichung über Visual Studio wird eine von zwei Bereitstellungsmethoden verwendet:When you publish from Visual Studio, it uses one of two deployment methods:

Verwenden Sie die folgenden Schritte, um Ihr Projekt in einer Funktions-App in Azure zu veröffentlichen.Use the following steps to publish your project to a function app in Azure.

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie Veröffentlichen aus.In Solution Explorer, right-click the project and select Publish.

  2. Verwenden Sie unter Veröffentlichungsziel auswählen die in der folgenden Tabelle angegebenen Veröffentlichungsoptionen:In Pick a publish target, use the publish options specified in the following table:

    OptionOption BESCHREIBUNGDescription
    Azure Functions-NutzungsplanAzure Functions Consumption Plan Dient zum Erstellen einer Funktions-App in einer Azure-Cloudumgebung, die in einem Nutzungsplan ausgeführt wird.Create a function app in an Azure cloud environment that runs in a Consumption plan. Wenn Sie einen Nutzungsplan verwenden, bezahlen Sie nur für Ausführungen Ihrer Funktions-App.When you use a Consumption plan, you pay only for executions of your functions app. Für andere Hostingpläne fallen höhere Kosten an.Other hosting plans incur higher costs. Wenn Sie einen anderen Plan als einen Nutzungsplan verwenden müssen Sie die Skalierung Ihrer Funktions-App verwalten.If you run in a plan other than a Consumption plan, you must manage the scaling of your function app.
    Neu erstellenCreate New Eine neue Funktions-App wird mit zugehörigen Ressourcen in Azure erstellt.A new function app, with related resources, is created in Azure.
    Bei Verwendung von Vorhandene auswählen werden alle Dateien in der vorhandenen Funktions-App in Azure durch Dateien aus dem lokalen Projekt überschrieben.If you choose Select Existing, all files in the existing function app in Azure are overwritten by files from the local project. Verwenden Sie diese Option nur, wenn Sie Updates für eine vorhandene Funktions-App erneut veröffentlichen.Use this option only when you republish updates to an existing function app.
    Aus Paketdatei ausführenRun from package file Ihre Funktions-App wird unter Verwendung der ZIP-Bereitstellung mit aktiviertem Modus Run-From-Package bereitgestellt.Your function app is deployed using Zip Deploy with Run-From-Package mode enabled. Diese Bereitstellung führt zu einer besseren Leistung und wird für die Ausführung Ihrer Funktionen empfohlen.This deployment, which results in better performance, is the recommended way of running your functions.
    Wenn Sie diese Option nicht verwenden, stellen Sie vor der Veröffentlichung in Azure sicher, dass das Funktions-App-Projekt nicht lokal ausgeführt wird.If you don't use this option, make sure to stop your function app project from running locally before you publish to Azure.

    Erstellen eines Veröffentlichungsprofils

  3. Wählen Sie Profil erstellen aus.Select Create Profile. Falls Sie sich noch nicht über Visual Studio bei Ihrem Azure-Konto angemeldet haben, wählen Sie Anmelden aus.If you haven't already signed-in to your Azure account from Visual Studio, select Sign-in. Sie können auch ein kostenloses Azure-Konto erstellen.You can also create a free Azure account.

  4. Verwenden Sie unter App Service: Neu erstellen die Werte aus der folgenden Tabelle:In App Service: Create new, use the values specified in the following table:

    EinstellungSetting WertValue BESCHREIBUNGDescription
    NameName Global eindeutiger NameGlobally unique name Name, der Ihre neue Funktions-App eindeutig identifiziert.Name that uniquely identifies your new function app. Übernehmen Sie diesen Namen, oder geben Sie einen neuen Namen ein.Accept this name or enter a new name. Gültige Zeichen: a-z, 0-9 und -.Valid characters are: a-z, 0-9, and -.
    AbonnementSubscription Ihr AbonnementYour subscription Das zu verwendende Azure-Abonnement.The Azure subscription to use. Übernehmen Sie dieses Abonnement, oder wählen Sie in der Dropdownliste ein neues Abonnement aus.Accept this subscription or select a new one from the drop-down list.
    RessourcengruppeResource group Name Ihrer RessourcengruppeName of your resource group Die Ressourcengruppe, in der Ihre Funktions-App erstellt werden soll.The resource group in which to create your function app. Wählen Sie in der Dropdownliste eine vorhandene Ressourcengruppe aus, oder wählen Sie Neu aus, um eine neue Ressourcengruppe zu erstellen.Select an existing resource group from the drop-down list or choose New to create a new resource group.
    HostingplanHosting Plan Name Ihres HostingplansName of your hosting plan Wählen Sie Neu aus, um einen serverlosen Plan zu konfigurieren.Select New to configure a serverless plan. Wählen Sie unter Größe den Verbrauch aus.Make sure to choose the Consumption under Size. Wenn Sie Ihr Projekt in einer Funktions-App veröffentlichen, die in einem Verbrauchsplan ausgeführt wird, bezahlen Sie nur für die Ausführungen Ihrer Funktions-App.When you publish your project to a function app that runs in a Consumption plan, you pay only for executions of your functions app. Für andere Hostingpläne fallen höhere Kosten an.Other hosting plans incur higher costs. Bei Verwendung eines anderen Plans als Verbrauch müssen Sie die Skalierung Ihrer Funktions-App verwalten.If you run in a plan other than Consumption, you must manage the scaling of your function app.
    LocationLocation Standort des App-DienstsLocation of the app service Wählen Sie einen Standort in einer Region in Ihrer Nähe oder in der Nähe anderer Dienste aus, auf die Ihre Funktionen zugreifen.Choose a Location in a region near you or other services your functions access.
    Azure StorageAzure Storage Universelles SpeicherkontoGeneral-purpose storage account Für die Functions-Runtime wird ein Azure Storage-Konto benötigt.An Azure Storage account is required by the Functions runtime. Wählen Sie Neu aus, um ein universelles Speicherkonto zu konfigurieren.Select New to configure a general-purpose storage account. Sie können auch ein vorhandenes Konto auswählen, das die Anforderungen an das Speicherkonto erfüllt.You can also choose an existing account that meets the storage account requirements.

    Dialogfeld „App Service erstellen“

  5. Wählen Sie Erstellen aus, um eine Funktions-App und zugehörige Ressourcen in Azure mit diesen Einstellungen zu erstellen und Ihren Funktionsprojektcode bereitzustellen.Select Create to create a function app and its related resources in Azure with these settings and deploy your function project code.

  6. Klicken Sie auf Veröffentlichen, und warten Sie, bis die Bereitstellung abgeschlossen ist.Select Publish and wait for the deployment to complete.

    Nach Abschluss der Bereitstellung wird die Stamm-URL der Funktions-App in Azure auf der Registerkarte Veröffentlichen angezeigt.After the deployment completes the root URL of the function app in Azure is shown in the Publish tab.

  7. Wählen Sie auf der Registerkarte „Veröffentlichen“ die Option Im Cloud-Explorer verwalten aus.In the Publish tab, choose Manage in Cloud Explorer. Dadurch wird die Azure-Ressource für die neue Funktions-App im Cloud-Explorer geöffnet.This opens the new function app Azure resource in Cloud Explorer.

    Veröffentlichen einer Erfolgsmeldung

    Im Cloud-Explorer können Sie Visual Studio verwenden, um die Inhalte der Website anzuzeigen, die Funktions-App zu starten und anzuhalten und direkt zu Funktions-App-Ressourcen in Azure und im Azure-Portal zu navigieren.Cloud Explorer lets you use Visual Studio to view the contents of the site, start and stop the function app, and browse directly to function app resources on Azure and in the Azure portal.

Einstellungen für Funktions-AppsFunction app settings

Da Visual Studio diese Einstellungen nicht automatisch beim Veröffentlichen des Projekts hochlädt, müssen Sie alle in der Datei „local.settings.json“ hinzugefügten Einstellungen auch der Funktions-App in Azure hinzufügen.Because Visual Studio doesn't upload these settings automatically when you publish the project, any settings you add in the local.settings.json you must also add to the function app in Azure.

Die einfachste Möglichkeit zum Hochladen der erforderlichen Einstellungen in Ihre Funktions-App in Azure ist das Auswählen des Links Azure App Service-Einstellungen bearbeiten, der nach dem Veröffentlichen des Projekts angezeigt wird.The easiest way to upload the required settings to your function app in Azure is to select the Manage Azure App Service settings link that appears after you successfully publish your project.

Einstellungen im Fenster „Veröffentlichen“

Durch Auswählen dieses Links wird das Dialogfeld Anwendungseinstellungen für die Funktions-App angezeigt, in dem Sie neue Anwendungseinstellungen hinzufügen oder vorhandene ändern können.Selecting this link displays the Application settings dialog for the function app, where you can add new application settings or modify existing ones.

Anwendungseinstellungen

Lokal zeigt einen Einstellungswert in der Datei „local.settings.json“ an, und Remote zeigt einen aktuellen Einstellungswert in der Funktions-App in Azure an.Local displays a setting value in the local.settings.json file, and Remote displays a current setting value in the function app in Azure. Wählen Sie Einstellung hinzufügen, um eine neue App-Einstellung zu erstellen.Choose Add setting to create a new app setting. Verwenden Sie den Link Wert aus lokaler Quelle einfügen, um einen Einstellungswert in das Feld Remote zu kopieren.Use the Insert value from Local link to copy a setting value to the Remote field. Ausstehende Änderungen werden in die Datei für lokale Einstellungen und die Funktions-App geschrieben, wenn Sie OK auswählen.Pending changes are written to the local settings file and the function app when you select OK.

Hinweis

Standardmäßig wird die Datei „local.settings.json“ nicht in die Quellcodeverwaltung eingecheckt.By default, the local.settings.json file is not checked into source control. Dies bedeutet, dass das Projekt beim Klonen eines lokalen Functions-Projekts aus der Quellcodeverwaltung keine Datei „local.settings.json“ enthält.This means that if you clone a local Functions project from source control, the project doesn't have a local.settings.json file. In diesem Fall müssen Sie die Datei „local.settings.json“ manuell im Projektstamm erstellen, damit das Dialogfeld Anwendungseinstellungen erwartungsgemäß funktioniert.In this case, you need to manually create the local.settings.json file in the project root so that the Application settings dialog works as expected.

Sie können die Anwendungseinstellungen auch folgendermaßen verwalten:You can also manage application settings in one of these other ways:

Überwachen von FunktionenMonitoring functions

Die empfohlene Methode zum Überwachen der Ausführung Ihrer Funktionen ist die Integration Ihrer Funktions-App in Azure Application Insights.The recommended way to monitor the execution of your functions is by integrating your function app with Azure Application Insights. Wenn Sie eine Funktions-App im Azure-Portal erstellen, wird diese Integration standardmäßig für Sie erledigt.When you create a function app in the Azure portal, this integration is done for you by default. Wenn Sie Ihre Funktions-App während der Veröffentlichung in Visual Studio erstellen, erfolgt die Integration Ihrer Funktions-App in Azure nicht.However, when you create your function app during Visual Studio publishing, the integration in your function app in Azure isn't done.

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

  1. Suchen Sie im Azure-Portal nach Funktions-App, und wählen Sie diese Option und dann Ihre Funktions-App aus.In the Azure portal, search for and select function app, and then choose your function app.

  2. Wählen Sie oben im Fenster das Banner Application Insights ist nicht konfiguriert aus.Select the Application Insights is not configured banner at the top of the window. Sollte dieses Banner nicht angezeigt werden, ist Application Insights möglicherweise bereits für Ihre App aktiviert.If you don't see this banner, then your app might already have Application Insights enabled.

    Aktivieren von Application Insights über das Portal

  3. Erweitern Sie Ressource ändern, und erstellen Sie eine Application Insights-Ressource. Verwenden Sie dazu die Einstellungen, die in der folgenden Tabelle angegeben sind.Expand Change your resource and create an Application Insights resource by using the settings specified in the following table.

    EinstellungSetting Vorgeschlagener WertSuggested value BESCHREIBUNGDescription
    Name der neuen RessourceNew resource name 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.

    Erstellen Sie eine Application Insights-Ressource .

  4. Wählen Sie Übernehmen.Select Apply.

    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.

  5. Wählen Sie in Ihrer Funktions-App unter Einstellungen die Option Konfiguration und dann Anwendungseinstellungen aus.In your function app, select Configuration under Settings, and then select 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.

Weitere Informationen finden Sie unter Überwachen von Azure Functions.To learn more, see Monitor Azure Functions.

Nächste SchritteNext steps

Weitere Informationen zu Azure Functions Core Tools finden Sie unter Arbeiten mit Azure Functions Core Tools.For more information about the Azure Functions Core Tools, see Work with Azure Functions Core Tools.

Weitere Informationen zum Entwickeln von Funktionen als .NET-Klassenbibliotheken finden Sie unter C#-Entwicklerreferenz zu Azure Functions.For more information about developing functions as .NET class libraries, see Azure Functions C# developer reference. Dieser Artikel enthält auch Links zu Beispielen für die Verwendung von Attributen zum Deklarieren der verschiedenen Typen von Bindungen, die von Azure Functions unterstützt werden.This article also links to examples of how to use attributes to declare the various types of bindings supported by Azure Functions.