Vývoj Azure Functions pomocí sady Visual StudioDevelop Azure Functions using Visual Studio

Visual Studio umožňuje vyvíjet, testovat a nasazovat C# funkce knihovny tříd do Azure.Visual Studio lets you develop, test, and deploy C# class library functions to Azure. Pokud je to vaše první prostředí s Azure Functions, můžete získat další informace v úvodu k Azure Functions.If this experience is your first with Azure Functions, you can learn more at An introduction to Azure Functions.

Visual Studio poskytuje při vývoji funkcí následující výhody:Visual Studio provides the following benefits when develop your functions:

  • Upravovat, sestavovat a spouštět funkce na místním počítači pro vývoj.Edit, build, and run functions on your local development computer.
  • Publikujte svůj Azure Functions projekt přímo do Azure a podle potřeby vytvořte prostředky Azure.Publish your Azure Functions project directly to Azure, and create Azure resources as needed.
  • Použijte C# atributy k deklaraci vazeb funkcí přímo v C# kódu.Use C# attributes to declare function bindings directly in the C# code.
  • Vývoj a nasazení předem kompilovaných C# funkcíDevelop and deploy pre-compiled C# functions. Předem splněné funkce poskytují lepší výkon pro studený start než C# funkce založené na skriptech.Pre-complied functions provide a better cold-start performance than C# script-based functions.
  • Nahlaste své C# funkce v nástroji a přitom Využijte výhod vývoje sady Visual Studio.Code your functions in C# while having all of the benefits of Visual Studio development.

Tento článek poskytuje podrobné informace o tom, jak používat Visual Studio C# k vývoji funkcí knihoven tříd a jejich publikování do Azure.This article provides details about how to use Visual Studio to develop C# class library functions and publish them to Azure. Před čtením tohoto článku byste měli dokončit rychlé zprovoznění funkcí pro Visual Studio.Before you read this article, you should complete the Functions quickstart for Visual Studio.

Pokud není uvedeno jinak, postupy a příklady jsou uvedeny pro Visual Studio 2019.Unless otherwise noted, procedures and examples shown are for Visual Studio 2019.

PožadavkyPrerequisites

Azure Functions nástroje jsou součástí úlohy vývoje Azure sady Visual Studio počínaje sadou Visual Studio 2017.Azure Functions Tools is included in the Azure development workload of Visual Studio starting with Visual Studio 2017. Ujistěte se, že jste do instalace sady Visual Studio zahrnuli úlohu vývoj pro Azure .Make sure you include the Azure development workload in your Visual Studio installation.

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.If you don't have an Azure subscription, create a free account before you begin.

Další prostředky, které potřebujete, například účet Azure Storage, se ve vašem předplatném vytvoří během procesu publikování.Other resources that you need, such as an Azure Storage account, are created in your subscription during the publishing process.

Poznámka

V aplikaci Visual Studio 2017 nainstalují úlohy vývoje Azure nástroje Azure Functions jako samostatné rozšíření.In Visual Studio 2017, the Azure development workload installs the Azure Functions Tools as a separate extension. Při aktualizaci sady Visual Studio 2017 se ujistěte, že používáte nejnovější verzi Azure Functions nástrojů.When you update your Visual Studio 2017, also make sure that you are using the most recent version of the Azure Functions tools. V následujících částech se dozvíte, jak kontrolovat a (v případě potřeby) aktualizovat rozšíření Azure Functions nástrojů v aplikaci Visual Studio 2017.The following sections show you how to check and (if needed) update your Azure Functions Tools extension in Visual Studio 2017.

Pokud používáte Visual Studio 2019, přeskočte prosím tyto oddíly.Please skip these section when using Visual Studio 2019.

Podívejte se na verzi nástrojů v aplikaci Visual Studio 2017Check your tools version in Visual Studio 2017

  1. Z nástroje nabídce zvolte rozšíření a aktualizace.From the Tools menu, choose Extensions and Updates. Rozbalte položku nainstalované nástroje > a vyberte nástroje Azure functions a webové úlohy.Expand Installed > Tools and choose Azure Functions and Web Jobs Tools.

    Ověření verze nástrojů Functions

  2. Poznamenejte si nainstalovanou verzi.Note the installed Version. Tuto verzi můžete porovnat s nejnovější verzí uvedenou v poznámkách k verzi.You can compare this version with the latest version listed in the release notes.

  3. Pokud je vaše verze starší, aktualizujte své nástroje v sadě Visual Studio, jak je znázorněno v následující části.If your version is older, update your tools in Visual Studio as shown in the following section.

Aktualizace nástrojů v aplikaci Visual Studio 2017Update your tools in Visual Studio 2017

  1. V dialogovém okně rozšíření a aktualizace rozbalte položku aktualizace > Visual Studio Marketplace, vyberte Azure functions a nástroje webové úlohy a vyberte aktualizovat.In the Extensions and Updates dialog, expand Updates > Visual Studio Marketplace, choose Azure Functions and Web Jobs Tools and select Update.

    Aktualizace verze nástrojů Functions

  2. Po stažení aktualizace nástroje zavřete sadu Visual Studio na trigger nástroje aktualizace pomocí instalátor VSIX.After the tools update is downloaded, close Visual Studio to trigger the tools update using the VSIX installer.

  3. V instalačním programu klikněte na tlačítko OK a začněte tak, že kliknete na tlačítko Upravit a aktualizujete nástroje.In the installer, choose OK to start and then Modify to update the tools.

  4. Po dokončení aktualizace klikněte na Zavřít a restartujte Visual Studio.After the update is complete, choose Close and restart Visual Studio.

Poznámka

V aplikaci Visual Studio 2019 nebo novější je rozšíření Azure Functionsch nástrojů aktualizováno v rámci sady Visual Studio.In Visual Studio 2019 and later, the Azure Functions tools extension is updated as part of Visual Studio.

Vytvoření projektu Azure FunctionsCreate an Azure Functions project

Šablona projektu Azure Functions v sadě Visual Studio vytvoří projekt, který jde publikovat do aplikace funkcí v Azure.The Azure Functions project template in Visual Studio creates a project that can be published to a function app in Azure. Pomocí aplikace Function App můžete seskupit funkce jako logickou jednotku pro snadnější správu, nasazování, škálování a sdílení prostředků.You can use a function app to group functions as a logical unit for easier management, deployment, scaling, and sharing of resources.

  1. V aplikaci Visual Studio v nabídce soubor vyberte Nový > projekt.In Visual Studio, on the File menu, select New > Project.

  2. V dialogovém okně vytvořit nový projekt vyhledejte functions, zvolte šablonu Azure Functions a vyberte Další.In the Create a new project dialog box, search for functions, choose the Azure Functions template, and select Next.

  3. Zadejte název projektu a vyberte vytvořit.Enter a name for your project, and select Create. Název aplikace funkcí musí být platný jako obor názvů C#, takže nepoužívejte podtržítka, pomlčky nebo jiné nealfanumerické znaky.The function app name must be valid as a C# namespace, so don't use underscores, hyphens, or any other nonalphanumeric characters.

  4. V části Vytvoření nové aplikace Azure Functionspoužijte následující možnosti:In Create a new Azure Functions application, use the following options:

    • Azure Functions v2 (.NET Core)Azure Functions v2 (.NET Core)
    • Aktivační událost HTTPHTTP trigger
    • Účet úložiště: emulátor úložištěStorage Account: Storage Emulator
    • Úroveň autorizace: anonymníAuthorization level: Anonymous
    MožnostOption Navrhovaná hodnotaSuggested value PopisDescription
    Modul runtime FunctionsFunctions runtime Azure Functions 2. x
    (.NET Core)
    Azure Functions 2.x
    (.NET Core)
    Toto nastavení vytvoří projekt funkce, který používá modul runtime verze 2. x Azure Functions, který podporuje .NET Core.This setting creates a function project that uses the version 2.x runtime of Azure Functions, which supports .NET Core. Azure Functions 1.x podporuje rozhraní .NET Framework.Azure Functions 1.x supports the .NET Framework. Další informace najdete v tématu cílová verze modulu runtime Azure Functions.For more information, see Target Azure Functions runtime version.
    Šablona funkceFunction template Aktivační událost HTTPHTTP trigger Toto nastavení vytvoří funkci spuštěnou požadavkem HTTP.This setting creates a function triggered by an HTTP request.
    Účet úložištěStorage Account Emulátor úložištěStorage Emulator Aktivační událost protokolu HTTP nepoužívá připojení účtu Azure Storage.An HTTP trigger doesn't use the Azure Storage account connection. Všechny ostatní typy triggerů vyžadují platný připojovací řetězec účtu úložiště.All other trigger types require a valid Storage account connection string. Vzhledem k tomu, že funkce vyžadují účet úložiště, je jeden přiřazen nebo vytvořen při publikování projektu do Azure.Because Functions requires a storage account, one is assigned or created when you publish your project to Azure.
    Úroveň autorizaceAuthorization level AnonymousAnonymous Vytvořenou funkci může aktivovat libovolný klient bez zadání klíče.The created function can be triggered by any client without providing a key. Toto nastavení autorizace usnadňuje testování nových funkcí.This authorization setting makes it easy to test your new function. Další informace o klíčích a autorizace najdete v části věnovaném klíčům autorizace v tématu HTTP a webhookové vazby.For more information about keys and authorization, see Authorization keys in the HTTP and webhook bindings.

    Poznámka

    Ujistěte se, že jste nastavili úroveň autorizace na Anonymous.Make sure you set the Authorization level to Anonymous. Pokud zvolíte výchozí úroveň Function, je nutné prezentovat klíč funkce v žádosti o přístup ke koncovému bodu funkce.If you choose the default level of Function, you're required to present the function key in requests to access your function endpoint.

  5. Vyberte vytvořit k vytvoření projektu funkce a funkce aktivované protokolem HTTP.Select Create to create the function project and HTTP-triggered function.

Šablona projektu vytvoří C# projekt, nainstaluje balíček NuGet Microsoft.NET.Sdk.Functions a nastaví cílovou architekturu.The project template creates a C# project, installs the Microsoft.NET.Sdk.Functions NuGet package, and sets the target framework. Nový projekt má následující soubory:The new project has the following files:

  • Host. JSON: umožňuje konfigurovat hostitele funkcí.host.json: Lets you configure the Functions host. Tato nastavení platí při místním spuštění i v Azure.These settings apply both when running locally and in Azure. Další informace naleznete v tématu reference Host. JSON.For more information, see host.json reference.

  • Local. Settings. JSON: udržuje nastavení použitá při místním spouštění funkcí.local.settings.json: Maintains settings used when running functions locally. Tato nastavení se nepoužívají při spuštění v Azure.These settings aren't used when running in Azure. Další informace najdete v tématu místní nastavení souboru.For more information, see Local settings file.

    Důležité

    Vzhledem k tomu, že soubor Local. Settings. JSON může obsahovat tajné kódy, je nutné jej vyloučit ze správy zdrojového kódu projektu.Because the local.settings.json file can contain secrets, you must excluded it from your project source control. Nastavení Kopírovat do výstupního adresáře pro tento soubor by se mělo vždycky Kopírovat, pokud je novější.The Copy to Output Directory setting for this file should always be Copy if newer.

Další informace naleznete v tématu Functions Class Library Project.For more information, see Functions class library project.

Soubor místního nastaveníLocal settings file

Soubor Local. Settings. JSON ukládá nastavení aplikace, připojovací řetězce a nastavení, které používají místní vývojové nástroje.The local.settings.json file stores app settings, connection strings, and settings used by local development tools. Nastavení v souboru Local. Settings. JSON se použijí pouze v případě, že používáte projekty místně.Settings in the local.settings.json file are used only when you're running projects locally. Soubor místních nastavení má tuto strukturu: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>"
  }
}

Tato nastavení jsou podporována při spuštění projektů místně:These settings are supported when you run projects locally:

NastaveníSetting PopisDescription
IsEncrypted Když je toto nastavení nastavené na true, všechny hodnoty se šifrují pomocí klíče místního počítače.When this setting is set to true, all values are encrypted with a local machine key. Používá se s příkazy func settings.Used with func settings commands. Výchozí hodnota je false.Default value is false.
Values Pole nastavení aplikace a připojovacích řetězců, které se použijí, když je projekt spuštěn místně.Array of application settings and connection strings used when a project is running locally. Tyto páry klíč-hodnota (řetězcové řetězce) odpovídají nastavení aplikace ve vaší aplikaci Function App v Azure, například AzureWebJobsStorage.These key-value (string-string) pairs correspond to application settings in your function app in Azure, like AzureWebJobsStorage. Mnoho triggerů a vazeb má vlastnost, která odkazuje na nastavení aplikace připojovacího řetězce, například Connection pro Trigger služby Blob Storage.Many triggers and bindings have a property that refers to a connection string app setting, like Connection for the Blob storage trigger. U těchto vlastností potřebujete nastavení aplikace definované v Values poli.For these properties, you need an application setting defined in the Values array.
AzureWebJobsStorage je požadované nastavení aplikace pro triggery jiné než HTTP.AzureWebJobsStorage is a required app setting for triggers other than HTTP.
Verze 2. x a vyšší modulu runtime funkcí vyžaduje nastavení [FUNCTIONS_WORKER_RUNTIME], které je vygenerováno pro váš projekt pomocí základních nástrojů.Version 2.x and higher of the Functions runtime requires the [FUNCTIONS_WORKER_RUNTIME] setting, which is generated for your project by Core Tools.
Pokud máte emulátor úložiště Azure nainstalovaný místně a nastavili jste AzureWebJobsStorage na UseDevelopmentStorage=true, nástroj Core Tools používá emulátor.When you have the Azure storage emulator installed locally and you set AzureWebJobsStorage to UseDevelopmentStorage=true, Core Tools uses the emulator. Emulátor je užitečný během vývoje, ale před nasazením je třeba otestovat pomocí skutečného připojení úložiště.The emulator is useful during development, but you should test with an actual storage connection before deployment.
Hodnoty musí být řetězce, nikoli objekty nebo pole JSON.Values must be strings and not JSON objects or arrays. Názvy nastavení nemůžou obsahovat dvojtečku (:) nebo dvojité podtržení (__).Setting names can't include a colon (:) or a double underline (__). Tyto znaky jsou vyhrazeny modulem runtime.These characters are reserved by the runtime.
Host Nastavení v této části přizpůsobuje hostitelský proces Functions, když spouštíte projekty místně.Settings in this section customize the Functions host process when you run projects locally. Tato nastavení jsou oddělená od nastavení Host. JSON, která platí také při spuštění projektů v Azure.These settings are separate from the host.json settings, which also apply when you run projects in Azure.
LocalHttpPort Nastaví výchozí port, který se používá při spuštění místního hostitele Functions (func host start a func run).Sets the default port used when running the local Functions host (func host start and func run). Možnost příkazového řádku --port má přednost před tímto nastavením.The --port command-line option takes precedence over this setting.
CORS Definuje zdroje povolené pro sdílení prostředků mezi zdroji (CORS).Defines the origins allowed for cross-origin resource sharing (CORS). Zdroje jsou zadány jako čárkami oddělený seznam bez mezer.Origins are supplied as a comma-separated list with no spaces. Je podporována znaková hodnota (*), která umožňuje požadavky z libovolného původu.The wildcard value (*) is supported, which allows requests from any origin.
CORSCredentials Pokud je nastaveno na true, umožňuje withCredentials požadavky.When set to true, allows withCredentials requests.
ConnectionStrings Kolekce.A collection. Tuto kolekci nepoužívejte pro připojovací řetězce používané vašimi vazbami funkcí.Don't use this collection for the connection strings used by your function bindings. Tato kolekce je používána pouze rozhraními, které obvykle získávají připojovací řetězce z oddílu ConnectionStrings konfiguračního souboru, například 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. Připojovací řetězce v tomto objektu jsou přidány do prostředí s typem zprostředkovatele System. data. SqlClient.Connection strings in this object are added to the environment with the provider type of System.Data.SqlClient. Položky v této kolekci se nepublikují do Azure s dalšími nastaveními aplikací.Items in this collection aren't published to Azure with other app settings. Tyto hodnoty musíte explicitně přidat do kolekce Connection strings nastavení aplikace Function App.You must explicitly add these values to the Connection strings collection of your function app settings. Pokud vytváříte SqlConnection v kódu funkce, měli byste uložit hodnotu připojovacího řetězce s dalšími připojeními v nastavení aplikace na portálu.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.

Nastavení v Local. Settings. JSON se při publikování projektu automaticky neodesílají.Settings in local.settings.json aren't uploaded automatically when you publish the project. Abyste se ujistili, že tato nastavení existují i ve vaší aplikaci Function App v Azure, musíte je po publikování projektu nahrát.To make sure that these settings also exist in your function app in Azure, you must upload them after you publish your project. Další informace najdete v tématu nastavení aplikace Function App.To learn more, see Function app settings.

Hodnoty v connectionStrings se nikdy nepublikují.Values in ConnectionStrings are never published.

Hodnoty nastavení aplikace Function App lze ve vašem kódu přečíst také jako proměnné prostředí.The function app settings values can also be read in your code as environment variables. Další informace naleznete v tématu proměnné prostředí.For more information, see Environment variables.

Konfigurace projektu pro místní vývojConfigure the project for local development

Modul runtime Functions používá interní účet Azure Storage.The Functions runtime uses an Azure Storage account internally. Pro všechny typy triggerů kromě HTTP a webhooků je potřeba nastavit klíč Values. AzureWebJobsStorage na platný připojovací řetězec účtu Azure Storage.For all trigger types other than HTTP and webhooks, you must set the Values.AzureWebJobsStorage key to a valid Azure Storage account connection string. Aplikace Function App může také použít emulátor úložiště Azure pro nastavení připojení AzureWebJobsStorage , které je vyžadováno projektem.Your function app can also use the Azure storage emulator for the AzureWebJobsStorage connection setting that is required by the project. Chcete-li použít emulátor, nastavte hodnotu AzureWebJobsStorage na UseDevelopmentStorage=true.To use the emulator, set the value of AzureWebJobsStorage to UseDevelopmentStorage=true. Před nasazením toto nastavení změňte na skutečný připojovací řetězec účtu úložiště.Change this setting to an actual storage account connection string before deployment.

Nastavení připojovacího řetězce účtu úložiště:To set the storage account connection string:

  1. V aplikaci Visual Studio otevřete Průzkumníka cloudu, rozbalte položku účet úložiště > účtu úložištěa potom na kartě vlastnosti Zkopírujte hodnotu primární připojovací řetězec .In Visual Studio, open Cloud Explorer, expand Storage Account > Your Storage Account, then in the Properties tab copy the Primary Connection String value.

  2. V projektu otevřete soubor Local. Settings. JSON a nastavte hodnotu klíče AzureWebJobsStorage na připojovací řetězec, který jste zkopírovali.In your project, open the local.settings.json file and set the value of the AzureWebJobsStorage key to the connection string you copied.

  3. Opakujte předchozí krok a přidejte jedinečné klíče do pole hodnoty pro všechna ostatní připojení požadovaná funkcemi.Repeat the previous step to add unique keys to the Values array for any other connections required by your functions.

Přidání funkce do projektuAdd a function to your project

Ve C# funkcích knihovny tříd jsou vazby používané funkcí definovány použitím atributů v kódu.In C# class library functions, the bindings used by the function are defined by applying attributes in the code. Při vytváření aktivační události funkce ze zadaných šablon se pro vás aplikují atributy triggeru.When you create your function triggers from the provided templates, the trigger attributes are applied for you.

  1. V Průzkumníku řešení klikněte pravým tlačítkem na uzel projektu a vyberte Přidat > Nová položka.In Solution Explorer, right-click on your project node and select Add > New Item. Vyberte funkce Azure, zadejte název třídy a klikněte na Přidat.Select Azure Function, type a Name for the class, and click Add.

  2. Vyberte aktivační událost, nastavte vlastnosti vazby a klikněte na vytvořit.Choose your trigger, set the binding properties, and click Create. Následující příklad ukazuje nastavení při vytváření funkce aktivované úložištěm Queue.The following example shows the settings when creating a Queue storage triggered function.

    Vytvoření funkce aktivované frontou

    Tento příklad triggeru používá připojovací řetězec s klíčem s názvem QueueStorage.This trigger example uses a connection string with a key named QueueStorage. Toto nastavení připojovacího řetězce musí být definováno v souboru Local. Settings. JSON.This connection string setting must be defined in the local.settings.json file.

  3. Projděte si nově přidanou třídu.Examine the newly added class. Zobrazí se statická metoda Run , která je označena atributem Function .You see a static Run method, that is attributed with the FunctionName attribute. Tento atribut označuje, že metoda je vstupním bodem pro funkci.This attribute indicates that the method is the entry point for the function.

    Například následující C# třída reprezentuje funkci aktivovanou pro úložiště front: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}");
            }
        }
    }
    

    Atribut specifický pro vazbu se použije na každý parametr vazby dodaný metodě vstupního bodu.A binding-specific attribute is applied to each binding parameter supplied to the entry point method. Atribut přebírá informace o vazbě jako parametry.The attribute takes the binding information as parameters. V předchozím příkladu má první parametr použit atribut QueueTrigger , který označuje funkci aktivovanou ve frontě.In the previous example, the first parameter has a QueueTrigger attribute applied, indicating queue triggered function. Název fronty a název nastavení připojovacího řetězce jsou předány jako parametry atributu QueueTrigger .The queue name and connection string setting name are passed as parameters to the QueueTrigger attribute. Další informace najdete v tématu vazby Azure Queue Storage pro Azure Functions.For more information, see Azure Queue storage bindings for Azure Functions.

Výše uvedený postup můžete použít k přidání dalších funkcí do projektu Function App.You can use the above procedure to add more functions to your function app project. Každá funkce v projektu může mít jinou aktivační událost, ale funkce musí mít právě jednu aktivační událost.Each function in the project can have a different trigger, but a function must have exactly one trigger. Další informace najdete v tématu Azure Functions triggery a koncepty vazeb.For more information, see Azure Functions triggers and bindings concepts.

Přidání vazebAdd bindings

Stejně jako u triggerů se vstupní a výstupní vazby přidávají do funkce jako atributy vazby.As with triggers, input and output bindings are added to your function as binding attributes. Přidejte vazby k funkci následujícím způsobem:Add bindings to a function as follows:

  1. Ujistěte se, že jste nakonfigurovali projekt pro místní vývoj.Make sure you've configured the project for local development.

  2. Přidejte příslušný balíček rozšíření NuGet pro konkrétní vazbu.Add the appropriate NuGet extension package for the specific binding. Další informace naleznete v tématu místní C# vývoj pomocí sady Visual Studio v článku triggery a vazby.For more information, see Local C# development using Visual Studio in the Triggers and Bindings article. Požadavky na balíček NuGet specifické pro vazbu najdete v referenčním článku pro vazbu.The binding-specific NuGet package requirements are found in the reference article for the binding. Můžete například vyhledat požadavky balíčku pro aktivační událost Event Hubs v článku odkaz Event Hubs vazby.For example, find package requirements for the Event Hubs trigger in the Event Hubs binding reference article.

  3. Pokud existují nastavení aplikace, která vazba potřebuje, přidejte je do kolekce Values v souboru místního nastavení.If there are app settings that the binding needs, add them to the Values collection in the local setting file. Tyto hodnoty se používají, když se funkce spustí místně.These values are used when the function runs locally. Když se funkce spustí v aplikaci Function App v Azure, použijí se nastavení aplikace Function App .When the function runs in the function app in Azure, the function app settings are used.

  4. Přidejte odpovídající atribut vazby do podpisu metody.Add the appropriate binding attribute to the method signature. V následujícím příkladu zpráva ve frontě aktivuje funkci a výstupní vazba vytvoří novou zprávu fronty se stejným textem v jiné frontě.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;
        }
    }
    

    Z nastavení AzureWebJobsStorage získá připojení k úložišti front.The connection to Queue storage is obtained from the AzureWebJobsStorage setting. Další informace najdete v referenčním článku pro konkrétní vazbu.For more information, see the reference article for the specific binding.

Tato tabulka ukazuje vazby, které jsou podporovány v hlavních verzích modulu runtime Azure Functions:This table shows the bindings that are supported in the major versions of the Azure Functions runtime:

TypType verze1.x 2. x a vyšší12.x and higher1 TriggerTrigger VstupInput VýstupOutput
Blob StorageBlob storage
Databáze CosmosCosmos DB
Event GridEvent Grid
Event HubsEvent Hubs
HTTP & WebhookyHTTP & webhooks
IoT HubIoT Hub
Microsoft Graph
excelové tabulky
Microsoft Graph
Excel tables
Soubory Microsoft Graph
OneDrivu
Microsoft Graph
OneDrive files
E-mail Microsoft Graph
Outlooku
Microsoft Graph
Outlook email
Události Microsoft Graph
Microsoft Graph
events
Ověřovací tokeny Microsoft Graph
Microsoft Graph
Auth tokens
Mobile AppsMobile Apps
Notification HubsNotification Hubs
Queue StorageQueue storage
SendGridSendGrid
Service BusService Bus
SignalRSignalR
Table StorageTable storage
ČasovačTimer
TwilioTwilio

1 počínaje modulem runtime verze 2. x musí být registrovány všechny vazby kromě protokolu HTTP a časovače.1 Starting with the version 2.x runtime, all bindings except HTTP and Timer must be registered. Viz Registrace rozšíření vazby.See Register binding extensions.

Testování funkcíTesting functions

Nástroje Azure Functions Core umožňují spouštět projekt Azure Functions na místním počítači pro vývoj.Azure Functions Core Tools lets you run Azure Functions project on your local development computer. K instalaci těchto nástrojů budete vyzváni při prvním spuštění funkce ze sady Visual Studio.You are prompted to install these tools the first time you start a function from Visual Studio.

Pokud chcete funkci otestovat, stiskněte F5.To test your function, press F5. Po výzvě přijměte požadavek ze sady Visual Studio na stažení a instalaci nástrojů Azure Functions Core (CLI).If prompted, accept the request from Visual Studio to download and install Azure Functions Core (CLI) tools. Může být také potřeba povolit výjimku brány firewall, aby nástroje mohly zpracovávat požadavky HTTP.You may also need to enable a firewall exception so that the tools can handle HTTP requests.

V případě, že je spuštěný projekt, můžete otestovat kód stejně, jako byste otestovali nasazenou funkci.With the project running, you can test your code as you would test deployed function. Další informace najdete v tématu strategie pro testování kódu v Azure Functions.For more information, see Strategies for testing your code in Azure Functions. Při spuštění v režimu ladění se zarážky narazí v aplikaci Visual Studio podle očekávání.When running in debug mode, breakpoints are hit in Visual Studio as expected.

Další informace o používání Azure Functions Core Tools najdete v tématu Code and test Azure Functions v místnímprostředí.To learn more about using the Azure Functions Core Tools, see Code and test Azure functions locally.

Publikování aplikací do AzurePublish to Azure

Při publikování ze sady Visual Studio se používá jedna ze dvou metod nasazení:When publishing from Visual Studio, one of two deployment methods are used:

Pomocí následujících kroků můžete projekt publikovat do aplikace Function App v Azure.Use the following steps to publish your project to a function app in Azure.

  1. V Průzkumníku řešení klikněte pravým tlačítkem na požadovaný projekt a vyberte Publikovat.In Solution Explorer, right-click the project and select Publish.

  2. V dialogovém okně vybrat cíl publikování použijte možnosti publikování, jak je uvedeno v tabulce pod obrázkem:In the Pick a publish target dialog, use the publish options as specified in the table below the image:

    Výběr cíle publikování

    MožnostOption PopisDescription
    Plán spotřeby Azure FunctionsAzure Functions Consumption plan Když publikujete projekt do aplikace Function App, která běží v plánu spotřeby, platíte jenom za provádění vaší aplikace Functions.When you publish your project to a function app that runs in a Consumption plan, you only pay for executions of your functions app. Jiné plány hostování účtují vyšší náklady.Other hosting plans incur higher costs. Další informace najdete v tématu škálování Azure functions a hostování.To learn more, see Azure Functions scale and hosting.
    Vytvořit novýCreate new V Azure se vytvoří nová aplikace Function App se souvisejícími prostředky.A new function app, with related resources, is created in Azure. Pokud zvolíte Vybrat existující, soubory z místního projektu přepíší všechny soubory ve stávající aplikaci funkcí v Azure.When you choose Select Existing, all files in the existing function app in Azure are overwritten by files from the local project. Tuto možnost použijte pouze v případě, že znovu publikujete aktualizace stávající aplikace funkcí.Only use this option when republishing updates to an existing function app.
    Spustit ze souboru balíčkuRun from package file Aplikace Function App se nasazuje pomocí funkce nasazení zip s povoleným režimem spuštění z balíčku .Your function app is deployed using Zip Deploy with Run-From-Package mode enabled. Toto je doporučený způsob spouštění vašich funkcí, což vede k lepšímu výkonu.This is the recommended way of running your functions, which results in better performance. Pokud tuto možnost nepoužíváte, ujistěte se, že jste před publikováním do Azure zastavili spuštění projektu Function App v místním prostředí.When not using this option, make sure to stop your function app project from running locally before you publish to Azure.
  3. Vyberte Publikovat.Select Publish. Pokud jste se ještě přihlásili ke svému účtu Azure ze sady Visual Studio, vyberte Přihlásitse.If you haven't already signed-in to your Azure account from Visual Studio, select Sign-in. Můžete si také vytvořit bezplatný účet Azure.You can also create a free Azure account.

  4. V dialogovém okně Azure App Service: vytvořit nové použijte nastavení hostování , jak je uvedeno v tabulce pod obrázkem:In the Azure App Service: Create new dialog, use the Hosting settings as specified in the table below the image:

    Dialogové okno Vytvoření služby App Service

    NastaveníSetting Navrhovaná hodnotaSuggested value PopisDescription
    NázevName Globálně jedinečný názevGlobally unique name Název jednoznačně identifikující novou aplikaci funkcí.Name that uniquely identifies your new function app. Platné znaky jsou a-z, 0-9 a -.Valid characters are a-z, 0-9, and -.
    PředplatnéSubscription Zvolte vaše předplatné.Choose your subscription Předplatné Azure, které se má použít.The Azure subscription to use.
    Skupina prostředkůResource Group myResourceGroupmyResourceGroup Název skupiny prostředků, ve které chcete vytvořit aplikaci funkcí.Name of the resource group in which to create your function app. Pokud chcete vytvořit novou skupinu prostředků, zvolte Nová.Choose New to create a new resource group.
    Plán hostováníHosting Plan Plán ConsumptionConsumption plan Až vyberete Nový a vytvoříte plán bez serveru, nezapomeňte zvolit spotřebu v nabídce Velikost .Make sure to choose the Consumption under Size after you select New to create a serverless plan. Zvolte také umístění v oblasti ve své blízkosti nebo v blízkosti jiných služeb, které vaše funkce využívají.Also, choose a Location in a region near you or near other services your functions access. Pokud používáte jiný plán než Spotřeba, musíte zajistit správu škálování vaší aplikace funkcí.When you run in a plan other than Consumption, you must manage the scaling of your function app.
    Azure StorageAzure Storage Účet úložiště pro obecné účelyGeneral-purpose storage account Modul runtime Functions vyžaduje účet úložiště Azure.An Azure storage account is required by the Functions runtime. Pokud chcete vytvořit účet úložiště pro obecné účely, vyberte Nový .Select New to create a general-purpose storage account. Můžete také použít existující účet, který splňuje požadavky na účet úložiště.You can also use an existing account that meets the storage account requirements.
  5. Výběrem možnosti vytvořit vytvoříte aplikaci funkcí a související prostředky v Azure s těmito nastaveními a nasadíte svůj kód projektu funkce.Select Create to create a function app and related resources in Azure with these settings and deploy your function project code.

  6. Jakmile se nasazení dokončí, poznamenejte si hodnotu Adresa URL webu. Je to adresa vaší aplikace funkcí v Azure.After the deployment is complete, make a note of the Site URL value, which is the address of your function app in Azure.

    Zpráva o úspěšném publikování

Nastavení aplikace funkcíFunction app settings

Všechna nastavení, která jste přidali v Local. Settings. JSON, se musí taky přidat do aplikace Function App v Azure.Any settings you added in the local.settings.json must be also added to the function app in Azure. Tato nastavení nejsou nahrána automaticky při publikování projektu.These settings aren't uploaded automatically when you publish the project.

Nejjednodušším způsobem, jak nahrát požadovaná nastavení do aplikace Function App v Azure, je použít odkaz Spravovat nastavení aplikace... , který se zobrazí po úspěšném publikování projektu.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.

Tím se zobrazí dialogové okno nastavení aplikace pro aplikaci Function App, kde můžete přidat nová nastavení aplikace nebo upravit stávající.This displays the Application Settings dialog for the function app, where you can add new application settings or modify existing ones.

Místní představuje hodnotu nastavení v souboru Local. Settings. JSON a Vzdálená je aktuální nastavení v aplikaci Function App v Azure.Local represents a setting value in the local.settings.json file, and Remote is the current setting in the function app in Azure. Vyberte Přidat nastavení a vytvořte nové nastavení aplikace.Choose Add Setting to create a new app setting. K zkopírování hodnoty nastavení do vzdáleného pole použijte odkaz Vložit hodnotu z místního .Use the Insert value from Local link to copy a setting value to the Remote field. Nedokončené změny se zapisují do souboru místního nastavení a aplikace Function App, když vyberete OK.Pending changes are written to the local settings file and the function app when you select OK.

Poznámka

Ve výchozím nastavení se soubor Local. Settings. JSON nekontroluje do správy zdrojového kódu.By default, the local.settings.json file is not checked into source control. To znamená, že když naklonete projekt místní funkce ze správy zdrojového kódu, projekt nemá soubor Local. Settings. JSON.This means that when you clone a local Functions project from source control, the project doesn't have a local.settings.json file. V takovém případě je nutné ručně vytvořit soubor Local. Settings. JSON v kořenu projektu, aby dialog nastavení aplikace fungoval podle očekávání.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.

Nastavení aplikace můžete spravovat také jedním z těchto způsobů:You can also manage application settings in one of these other ways:

Funkce monitorováníMonitoring functions

Doporučeným způsobem, jak monitorovat provádění vašich funkcí, je integrace aplikace Function App s Azure Application Insights.The recommended way to monitor the execution of your functions is by integrating your function app with Azure Application Insights. Když vytvoříte aplikaci funkcí v Azure Portal, tato integrace se ve výchozím nastavení provádí.When you create a function app in the Azure portal, this integration is done for you by default. Při vytváření aplikace Function App během publikování sady Visual Studio ale nebude dokončena integrace v aplikaci Function App v Azure.However, when you create your function app during Visual Studio publishing, the integration in your function app in Azure isn't done.

Povolení Application Insights pro aplikaci Function App:To enable Application Insights for your function app:

Funkce usnadňují přidání Application Insights integrace do aplikace Function App z Azure Portal.Functions makes it easy to add Application Insights integration to a function app from the Azure portal.

  1. Na portálu portal vyberte všechny služby > Function Apps, vyberte svou aplikaci Function App a potom v horní části okna vyberte banner Application Insights .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

    Povolení Application Insights z portálu

  2. Vytvořte prostředek Application Insights pomocí nastavení uvedeného v tabulce pod obrázkem.Create an Application Insights resource by using the settings specified in the table below the image.

    Vytvořte prostředek Application Insights

    NastaveníSetting Navrhovaná hodnotaSuggested value PopisDescription
    NázevName Jedinečný název aplikaceUnique app name Je nejjednodušší použít stejný název jako aplikace Function App, který musí být ve vašem předplatném jedinečný.It's easiest to use the same name as your function app, which must be unique in your subscription.
    LocationLocation Západní EvropaWest Europe Pokud je to možné, použijte stejnou oblast jako aplikace Function App nebo tu, která je blízko této oblasti.If possible, use the same region as your function app, or one that's close to that region.
  3. Vyberte OK.Select OK. Prostředek Application Insights se vytvoří ve stejné skupině prostředků a předplatném jako vaše aplikace Function App.The Application Insights resource is created in the same resource group and subscription as your function app. Po vytvoření prostředku zavřete okno Application Insights.After the resource is created, close the Application Insights window.

  4. Zpátky ve své aplikaci Function App vyberte nastavení aplikacea potom se posuňte dolů k nastavení aplikace.Back in your function app, select Application settings, and then scroll down to Application settings. Pokud se zobrazí nastavení s názvem APPINSIGHTS_INSTRUMENTATIONKEY, Application Insights integrace aplikace Function App běžící v Azure je povolená.If you see a setting named APPINSIGHTS_INSTRUMENTATIONKEY, Application Insights integration is enabled for your function app running in Azure.

Další informace najdete v tématu monitorování Azure Functions.To learn more, see Monitor Azure Functions.

Další krokyNext steps

Další informace o Azure Functions Core Tools najdete v tématu Code and test Azure Functions v místnímprostředí.To learn more about the Azure Functions Core Tools, see Code and test Azure functions locally.

Další informace o vývoji funkcí jako knihoven tříd .NET naleznete v tématu Azure Functions C# reference pro vývojáře.To learn more about developing functions as .NET class libraries, see Azure Functions C# developer reference. Tento článek také obsahuje odkazy na příklady použití atributů k deklaraci různých typů vazeb, které jsou podporovány nástrojem Azure Functions.This article also links to examples of how to use attributes to declare the various types of bindings supported by Azure Functions.