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, you can learn more at An introduction to Azure Functions.

Visual Studio bietet die folgenden Vorteile beim Entwickeln von Funktionen:Visual Studio provides the following benefits when 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 die Schnellstartanleitung Erstellen Ihrer ersten Funktion mit Visual Studio durcharbeiten.Before you read this article, you should complete 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 sind ab Visual Studio 2017 in der Workload „Azure-Entwicklung“ enthalten.Azure Functions Tools is included in the Azure development workload of Visual Studio starting with Visual Studio 2017. Stellen Sie sicher, dass Sie die Workload Azure-Entwicklung in die Installation von Visual Studio einschließen.Make sure you include the Azure development workload in your Visual Studio installation.

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.

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.

Hinweis

In Visual Studio 2017 installiert die Workload „Azure-Entwicklung“ die Azure Functions-Tools als separate Erweiterung.In Visual Studio 2017, the Azure development workload installs the Azure Functions Tools as a separate extension. Wenn Sie Visual Studio 2017 aktualisieren, stellen Sie sicher, dass Sie die neueste Version der Azure Functions-Tools verwenden.When you update your Visual Studio 2017, also make sure that you are 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 diesen Abschnitt, wenn Sie Visual Studio 2019 verwenden.Please skip these section when 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 Installierte > Tools, und wählen Sie Azure Functions und Webauftragstools.Expand Installed > Tools and choose Azure Functions and Web Jobs Tools.

    Überprüfen der Functions-Toolsversion

  2. Notieren Sie sich die installierte Version.Note the installed Version. Sie können dann diese Version mit der aktuellen Version vergleichen, die in den Versionshinweisen aufgeführt ist.You can 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, schließen Sie Visual Studio, damit die Tools mit dem VSIX-Installationsprogramm aktualisiert werden.After the tools update is downloaded, close Visual Studio to trigger the tools update using the VSIX installer.

  3. Wählen Sie im Installationsprogramm OK, um den Vorgang zu starten, und dann Ändern, um die Tools zu aktualisieren.In the installer, choose OK to start and then Modify to update the tools.

  4. Nachdem das Update abgeschlossen ist, wählen Sie Schließen und starten Visual Studio neu.After the update is complete, choose Close and 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 in einer Funktions-App in Azure veröffentlicht werden kann.The Azure Functions project template in Visual Studio creates a project that can be published to a function app in Azure. Sie können mit einer Funktions-App Funktionen zu logischen Einheiten gruppieren, um die Verwaltung, Bereitstellung und Freigabe von Ressourcen zu ermöglichen.You can use a function app to group functions as a logical unit for management, deployment, and sharing of resources.

  1. Wählen Sie in Visual Studio im Menü Datei die Optionen Neu > Projekt aus.In Visual Studio, on the File menu, select New > Project.

  2. Suchen Sie im Dialogfeld Neues Projekt erstellen nach functions, und wählen Sie die Vorlage Azure Functions und dann Weiter aus.In the Create a new project dialog box, search for functions, choose the Azure Functions template, and select Next.

  3. Geben Sie einen Namen für Ihr Projekt ein, und wählen Sie Erstellen aus.Enter a name for your project, and 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 unter Neue Azure Functions-Anwendung erstellen die folgenden Optionen:In Create a new Azure Functions application, use the following options:

    • Azure Functions v2 (.NET Core) 1Azure Functions v2 (.NET Core) 1
    • HTTP-TriggerHTTP trigger
    • Storage Account (Speicherkonto): SpeicheremulatorStorage Account: Storage Emulator
    • Autorisierungsstufe: AnonymousAuthorization level: Anonymous
    OptionOption Empfohlener WertSuggested value BESCHREIBUNGDescription
    Functions-RuntimeFunctions runtime Azure Functions 2.x
    (.NET Core)
    Azure Functions 2.x
    (.NET Core)
    Mit dieser Einstellung wird ein Funktionsprojekt mit Version 2.x der Runtime von Azure Functions erstellt, die .NET Core unterstützt.This setting creates a function project that uses the version 2.x runtime of Azure Functions, which supports .NET Core. 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 Target Azure Functions runtime version.
    FunktionsvorlageFunction template HTTP-TriggerHTTP trigger Mit dieser Einstellung wird eine Funktion erstellt, die mit einer HTTP-Anforderung ausgelöst wird.This setting creates a function triggered by an HTTP request.
    SpeicherkontoStorage Account SpeicheremulatorStorage Emulator Für einen HTTP-Trigger wird die Azure Storage-Kontoverbindung nicht verwendet.An HTTP trigger doesn't use the Azure Storage account connection. Für alle anderen Triggertypen ist eine gültige Speicherkonto-Verbindungszeichenfolge erforderlich.All other trigger types require a valid Storage account connection string. Da für Functions ein Speicherkonto erforderlich ist, wird ein Konto zugewiesen oder erstellt, wenn Sie Ihr Projekt in Azure veröffentlichen.Because Functions requires a storage account, one is assigned or created when you publish your project to Azure.
    AutorisierungsstufeAuthorization level AnonymousAnonymous 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 im Artikel HTTP- und Webhookbindungen in Azure Functions.For more information about keys and authorization, see Authorization keys in the HTTP and webhook bindings.

    Hinweis

    Stellen Sie sicher, dass Autorisierungsstufe auf Anonymous festgelegt ist.Make sure you set the Authorization level to Anonymous. Bei Auswahl der Standardebene Function müssen Sie in Anforderungen für den Zugriff auf den Funktionsendpunkt den Funktionsschlüssel angeben.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 per HTTP ausgelöste Funktion zu erstellen.Select Create to create the function project and HTTP-triggered function.

Die Projektvorlage erstellt ein C#-Projekt, installiert das NuGet-Paket Microsoft.NET.Sdk.Functions und legt das Zielframework fest.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 excluded it from your project source control. Die Einstellung In Ausgabeverzeichnis kopieren für diese Datei sollte immer Kopieren, wenn neuer lauten.The Copy to Output Directory setting for this file should always be 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.
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.

Einstellungen in der Datei „local.settings.json“ werden nicht automatisch hochgeladen, wenn Sie das Projekt veröffentlichen.Settings in local.settings.json aren't uploaded automatically when you publish the project. Um sicherzustellen, dass diese Einstellungen auch in Ihrer Funktions-App in Azure vorhanden sind, müssen Sie sie nach dem Veröffentlichen Ihres Projekts hochladen.To make sure that these settings also exist in your function app in Azure, you must upload them after you publish your project. Weitere Informationen finden Sie unter Einstellungen für Funktions-Apps.To learn more, see Function app settings.

Werte in ConnectionStrings werden niemals veröffentlicht.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 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. Sie müssen für alle Triggertypen außer HTTP und Webhooks den Schlüssel Values.AzureWebJobsStorage auf eine gültige Verbindungszeichenfolge des Azure-Speicherkontos festlegen.For all trigger types other than HTTP and webhooks, you must 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 is required by the project. Um den Emulator zu verwenden, legen Sie den Wert von 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. Öffnen Sie in Visual Studio den Cloud-Explorer, erweitern Sie Speicherkonto > Ihr Speicherkonto, und kopieren Sie auf der Registerkarte Eigenschaften den Wert von Primäre Verbindungszeichenfolge.In Visual Studio, open Cloud Explorer, expand Storage Account > Your Storage Account, then in the Properties tab copy the Primary Connection String value.

  2. Ö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.

  3. Wiederholen Sie den vorherigen Schritt zum Hinzufügen von eindeutigen Schlüsseln zum Values-Array für alle anderen Verbindungen, die von Ihren Funktionen benötigt werden.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.In Solution Explorer, right-click on your project node and select Add > New Item. Wählen Sie Azure Function aus, geben Sie einen Namen für die Klasse ein, und klicken Sie auf Hinzufügen.Select Azure Function, type a Name for the class, and click Add.

  2. Wählen Sie den Trigger aus, legen Sie die Bindungseigenschaften fest, und klicken Sie auf Erstellen.Choose your trigger, set the binding properties, and click Create. Im folgenden Beispiel werden die Einstellungen beim Erstellen einer Funktion gezeigt, die durch Queue Storage ausgelöst wird.The following example shows the settings when creating a Queue storage triggered function.

    Erstellen einer Funktion mit Auslösung per Warteschlange

    In diesem Triggerbeispiel wird eine Verbindungszeichenfolge mit einem Schlüssel namens QueueStorage verwendet.This trigger example uses a connection string with a key named QueueStorage. Diese Einstellung für die Verbindungszeichenfolge muss in der Datei local.settings.json definiert werden.This connection string setting must be defined in the local.settings.json file.

  3. Untersuchen Sie die neu hinzugefügte Klasse.Examine the newly added class. Es wird eine statische Run-Methode angezeigt, der das Attribut FunctionName zugewiesen wird.You see a static Run method, that is 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 Funktion dar, die durch Queue Storage ausgelöst wird:For example, the following C# class represents a basic Queue storage triggered 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 angewendet, das die durch eine Warteschlange ausgelöste Funktion angab.In the previous example, the first parameter has a QueueTrigger attribute applied, indicating queue triggered function. Die Namen der Warteschlange und der Einstellung für die Verbindungszeichenfolge werden als Parameter an das Attribut QueueTrigger ü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.

Sie können das obige Verfahren nutzen, um Ihrem Funktions-App-Projekt weitere Funktionen hinzuzufügen.You can 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 im Artikel zu Triggern und Bindungen unter Lokale Entwicklung in C# mit Visual Studio oder Visual Studio Code.For more information, see Local C# development using Visual Studio in the Triggers and Bindings article. Die bindungsspezifischen Anforderungen für NuGet-Pakete sind im Referenzartikel für die Bindung angegeben.The binding-specific NuGet package requirements are found 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. Diese Werte werden verwendet, wenn die Funktion lokal ausgeführt wird.These values are used when the function 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, the function app settings are used.

  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 beiden Hauptversionen der Azure Functions-Runtime unterstützt werden:This table shows the bindings that are supported in the two major versions of the Azure Functions runtime:

typeType 1.x1.x 2.x12.x1 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 In 2.x müssen alle Bindungen außer HTTP und Timer registriert sein.1 In 2.x, 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. Sie werden beim ersten Starten einer Funktion in Visual Studio zum Installieren dieser Tools aufgefordert.You are prompted to install these tools the first time you start a function from Visual Studio.

Drücken Sie F5, um Ihre Funktion zu testen.To test your function, 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 may also need to enable a firewall exception so that the tools can handle HTTP requests.

Wenn das Projekt ausgeführt wird, können Sie Ihren Code wie eine bereitgestellte Funktion testen.With the project running, you can test your code as you would test 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. Bei der Ausführung im Debug-Modus werden in Visual Studio wie erwartet Haltepunkte erreicht.When running in debug mode, breakpoints are hit in Visual Studio as expected.

Weitere Informationen über die Verwendung der Azure Functions Core-Tools finden Sie unter Lokales Codieren und Testen von Azure-Funktionen.To learn more about using the Azure Functions Core Tools, see Code and test Azure functions locally.

Veröffentlichen in AzurePublish to Azure

Bei der Veröffentlichung über Visual Studio wird eine von zwei Bereitstellungsmethoden verwendet:When publishing from Visual Studio, one of two deployment methods are used:

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 im Dialogfeld Veröffentlichungsziel auswählen die Veröffentlichungsoptionen, wie in der Tabelle unterhalb der Abbildung angegeben:In the Pick a publish target dialog, use the publish options as specified in the table below the image:

    Auswählen eines Veröffentlichungsziels

    OptionOption BESCHREIBUNGDescription
    Azure Functions-NutzungsplanAzure Functions Consumption plan 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 only pay for executions of your functions app. Für andere Hostingpläne fallen höhere Kosten an.Other hosting plans incur higher costs. Weitere Informationen finden Sie unter Skalierung und Hosting von Azure Functions.To learn more, see Azure Functions scale and hosting.
    Neue 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 der Auswahl von Vorhandene auswählen werden alle Dateien in der vorhandenen Funktions-App in Azure durch Dateien aus dem lokalen Projekt überschrieben.When 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 erneut Updates für eine vorhandene Funktions-App veröffentlichen.Only use this option when republishing 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. Dies Vorgehensweise wird zum Ausführen Ihrer Funktionen empfohlen und erzielt eine bessere Leistung.This is the recommended way of running your functions, which results in better performance. 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.When not using this option, make sure to stop your function app project from running locally before you publish to Azure.
  3. Wählen Sie Veröffentlichen.Select Publish. 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 im Dialogfeld App Service: Neu erstellen die Hostingeinstellungen wie in der Tabelle unter der Abbildung angegeben:In the App Service: Create new dialog, use the Hosting settings as specified in the table below the image:

    Dialogfeld „App Service erstellen“

    EinstellungSetting Empfohlener WertSuggested value BeschreibungDescription
    NameName Global eindeutiger NameGlobally unique name Name, der Ihre neue Funktions-App eindeutig identifiziert.Name that uniquely identifies your new function app. Gültige Zeichen sind a-z, 0-9 und -.Valid characters are a-z, 0-9, and -.
    AbonnementSubscription Auswählen Ihres AbonnementsChoose your subscription Das zu verwendende Azure-Abonnement.The Azure subscription to use.
    RessourcengruppeResource Group myResourceGroupmyResourceGroup Name der Ressourcengruppe, in der die Funktions-App erstellt wird.Name of the resource group in which to create your function app. Wählen Sie Neu aus, um eine neue Ressourcengruppe zu erstellen.Choose New to create a new resource group.
    HostingplanHosting Plan VerbrauchsplanConsumption plan Achten Sie darauf, unter Größe den Verbrauch auszuwählen, nachdem Sie Neu ausgewählt haben, um einen serverlosen Tarif zu erstellen.Make sure to choose the Consumption under Size after you select New to create a serverless plan. 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.Also, choose a Location in a region near you or near other services your functions access. Bei der Ausführung in einem anderen Plan als Verbrauch müssen Sie die Skalierung Ihrer Funktions-App verwalten.When you run in a plan other than Consumption, you must manage the scaling of your function app.
    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 erstellen.Select New to create a general-purpose storage account. Sie können auch ein vorhandenes Konto verwenden, das die Anforderungen an das Speicherkonto erfüllt.You can also use an existing account that meets the storage account requirements.
  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 related resources in Azure with these settings and deploy your function project code.

  6. Notieren Sie sich nach Abschluss der Bereitstellung den Wert der Website-URL, da es sich dabei um die Adresse Ihrer Funktions-App in Azure handelt.After the deployment is complete, make a note of the Site URL value, which is the address of your function app in Azure.

    Veröffentlichen einer Erfolgsmeldung

Einstellungen für Funktions-AppsFunction app settings

Alle Einstellungen, die Sie in „local.settings.json“ hinzugefügt haben, müssen auch der Funktions-App in Azure hinzugefügt werden.Any settings you added in the local.settings.json must be also added to the function app in Azure. Diese Einstellungen werden nicht automatisch hochgeladen, wenn Sie das Projekt veröffentlichen.These settings aren't uploaded automatically when you publish the project.

Die einfachste Möglichkeit zum Hochladen der erforderlichen Einstellungen in Ihre Funktions-App in Azure ist die Verwendung des Links Anwendungseinstellungen verwalten, der angezeigt wird, nachdem Sie das Projekt veröffentlicht haben.The easiest way to upload the required settings to your function app in Azure is to use the Manage Application Settings... link that is displayed after you successfully publish your project.

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

Lokal stellt einen Einstellungswert in der Datei „local.settings.json“ dar, und Remote ist die aktuelle Einstellung in der Funktions-App in Azure.Local represents a setting value in the local.settings.json file, and Remote is the current setting 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 when 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.

So aktivieren Sie Application Insights für Ihre Funktions-App:To enable Application Insights for your function app:

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.

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 Lokales Codieren und Testen von Azure-Funktionen.To learn more about the Azure Functions Core Tools, see Code and test Azure functions locally.

Weitere Informationen zum Entwickeln von Funktionen als .NET-Klassenbibliotheken finden Sie unter C#-Entwicklerreferenz zu Azure Functions.To learn more 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.