Desenvolver funções azure usando o Estúdio VisualDevelop Azure Functions using Visual Studio

O Visual Studio permite-lhe desenvolver, testar e implementar C# funções de biblioteca de classes para o Azure.Visual Studio lets you develop, test, and deploy C# class library functions to Azure. Se esta experiência for a primeira com as Funções Azure, pode aprender mais na introdução às Funções Azure.If this experience is your first with Azure Functions, you can learn more at An introduction to Azure Functions.

O Visual Studio proporciona os seguintes benefícios ao desenvolver as suas funções:Visual Studio provides the following benefits when develop your functions:

  • Editar, construir e executar funções no seu computador de desenvolvimento local.Edit, build, and run functions on your local development computer.
  • Publique o seu projeto Funções Azure diretamente para o Azure e crie recursos Azure conforme necessário.Publish your Azure Functions project directly to Azure, and create Azure resources as needed.
  • Utilize C# atributos para declarar encadernações de função diretamente no C# código.Use C# attributes to declare function bindings directly in the C# code.
  • Desenvolver e implementar funções pré-compiladas. C#Develop and deploy pre-compiled C# functions. As funções pré-cumpridas proporcionam um C# melhor desempenho a frio do que as funções baseadas em scripts.Pre-complied functions provide a better cold-start performance than C# script-based functions.
  • Codifique as C# suas funções ao mesmo tempo que tenha todos os benefícios do desenvolvimento do Estúdio Visual.Code your functions in C# while having all of the benefits of Visual Studio development.

Este artigo fornece detalhes sobre como usar C# o Estúdio Visual para desenvolver funções de biblioteca de classes e publicá-las no Azure.This article provides details about how to use Visual Studio to develop C# class library functions and publish them to Azure. Antes de ler este artigo, deve concluir as funções de arranque rápido para o Estúdio Visual.Before you read this article, you should complete the Functions quickstart for Visual Studio.

Salvo indicação em contrário, os procedimentos e exemplos mostrados são para o Estúdio Visual 2019.Unless otherwise noted, procedures and examples shown are for Visual Studio 2019.

Pré-requisitosPrerequisites

As Ferramentas de Funções Azure estão incluídas na carga de trabalho de desenvolvimento azure do Estúdio Visual a partir do Visual Studio 2017.Azure Functions Tools is included in the Azure development workload of Visual Studio starting with Visual Studio 2017. Certifique-se de que inclui a carga de trabalho de desenvolvimento do Azure na instalação do Estúdio Visual.Make sure you include the Azure development workload in your Visual Studio installation.

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.If you don't have an Azure subscription, create a free account before you begin.

Outros recursos de que necessita, como uma conta de Armazenamento Azure, são criados na sua subscrição durante o processo de publicação.Other resources that you need, such as an Azure Storage account, are created in your subscription during the publishing process.

Nota

No Visual Studio 2017, a carga de trabalho de desenvolvimento do Azure instala as Ferramentas de Funções Azure como uma extensão separada.In Visual Studio 2017, the Azure development workload installs the Azure Functions Tools as a separate extension. Quando atualizar o seu Visual Studio 2017, certifique-se também de que está a utilizar a versão mais recente das ferramentas Funções Azure.When you update your Visual Studio 2017, also make sure that you are using the most recent version of the Azure Functions tools. As seguintes secções mostram-lhe como verificar e (se necessário) atualizar a extensão das ferramentas de funções Azure no Estúdio Visual 2017.The following sections show you how to check and (if needed) update your Azure Functions Tools extension in Visual Studio 2017.

Por favor, ignore esta secção ao utilizar o Visual Studio 2019.Please skip these section when using Visual Studio 2019.

Consulte a sua versão de ferramentas no Visual Studio 2017Check your tools version in Visual Studio 2017

  1. No menu Ferramentas, escolha Extensões e Atualizações.From the Tools menu, choose Extensions and Updates. Expandir ferramentas de > instaladas e escolher funções Azure e ferramentas de emprego web.Expand Installed > Tools and choose Azure Functions and Web Jobs Tools.

    Verifique a versão das ferramentas Funções

  2. Note a versãoinstalada .Note the installed Version. Pode comparar esta versão com a versão mais recente listada nas notas de lançamento.You can compare this version with the latest version listed in the release notes.

  3. Se tiver uma versão mais antiga, Atualize as suas ferramentas no Visual Studio, conforme mostrado na seção a seguir.If your version is older, update your tools in Visual Studio as shown in the following section.

Atualize as suas ferramentas no Visual Studio 2017Update your tools in Visual Studio 2017

  1. No diálogo de extensões e atualizações, expanda as Atualizações > Visual Studio Marketplace, escolha funções azure e ferramentas de emprego web e selecione Update.In the Extensions and Updates dialog, expand Updates > Visual Studio Marketplace, choose Azure Functions and Web Jobs Tools and select Update.

    Atualizar a versão 'Ferramentas'

  2. Após a atualização das ferramentas é transferida, feche o Visual Studio ao acionar que as ferramentas de atualização através do instalador do VSIX.After the tools update is downloaded, close Visual Studio to trigger the tools update using the VSIX installer.

  3. No instalador, escolha OK para iniciar e, em seguida, Modificar para atualizar as ferramentas.In the installer, choose OK to start and then Modify to update the tools.

  4. Depois de a atualização estar completa, escolha Fechar e reiniciar o Estúdio Visual.After the update is complete, choose Close and restart Visual Studio.

Nota

No Visual Studio 2019 e mais tarde, a extensão de ferramentas Azure Functions é atualizada como parte do Visual Studio.In Visual Studio 2019 and later, the Azure Functions tools extension is updated as part of Visual Studio.

Criar um projeto das Funções do AzureCreate an Azure Functions project

O modelo de projeto Funções Azure no Estúdio Visual cria um projeto que pode publicar numa aplicação de função no Azure.The Azure Functions project template in Visual Studio creates a project that you can publish to a function app in Azure. Você pode usar uma aplicação de função para agrupar funções como uma unidade lógica para uma gestão mais fácil, implementação, escalagem e partilha de recursos.You can use a function app to group functions as a logical unit for easier management, deployment, scaling, and sharing of resources.

  1. No Estúdio Visual, no menu File, selecione New > Project.In Visual Studio, on the File menu, select New > Project.

  2. Em Criar um novo projeto, introduza funções na caixa de pesquisa e, em seguida, escolha o modelo funções Azure.In Create a new project, enter functions in the search box, and then choose the Azure Functions template.

  3. Em Configurar o seu novo projeto, insira um nome de Projeto para o seu projeto e, em seguida, selecione Criar.In Configure your new project, enter a Project name for your project, and then select Create. O nome da aplicação de funções deve ser válido como um espaço de nomes C#. Portanto, não use sublinhados, hífenes ou outros carateres não alfanuméricos.The function app name must be valid as a C# namespace, so don't use underscores, hyphens, or any other nonalphanumeric characters.

  4. Para o Novo <Projeto> - as definições do nome do seu projeto, utilize os valores na tabela seguinte:For the New Project - <your project name> settings, use the values in the following table:

    DefiniçãoSetting ValorValue DescriçãoDescription
    Funções tempo de funcionamentoFunctions runtime Funções Azure
    v2 (.NÚCLEO NET)
    Azure Functions v2
    (.NET Core)
    Este valor cria um projeto de função que utiliza a versão 2.x runtime das Funções Azure, que suporta o Núcleo .NET.This value creates a function project that uses the version 2.x runtime of Azure Functions, which supports .NET Core. As Funções do Azure 1.x suportam o .NET Framework.Azure Functions 1.x supports the .NET Framework. Para mais informações, consulte a visão geral das versões de execução do Funcionamento do Azure.For more information, see Azure Functions runtime versions overview.
    Modelo de funçãoFunction template Gatilho HTTPHTTP trigger Este valor cria uma função desencadeada por um pedido HTTP.This value creates a function triggered by an HTTP request.
    Conta de ArmazenamentoStorage Account Emulador do ArmazenamentoStorage Emulator Como uma Função Azure requer uma conta de armazenamento, uma é atribuída ou criada quando publica o seu projeto para o Azure.Because an Azure Function requires a storage account, one is assigned or created when you publish your project to Azure. Um gatilho HTTP não utiliza uma cadeia de ligação à conta De armazenamento Azure; todos os outros tipos de gatilho requerem uma cadeia de ligação de conta Azure Storage válida.An HTTP trigger doesn't use an Azure Storage account connection string; all other trigger types require a valid Azure Storage account connection string.
    Direitos de acessoAccess rights AnónimoAnonymous A função criada pode ser acionada por qualquer cliente sem fornecer uma chave.The created function can be triggered by any client without providing a key. Esta definição de autorização torna mais fácil testar a função nova.This authorization setting makes it easy to test your new function. Para obter mais informações sobre chaves e autorização, consulte as chaves de autorização e http e as encadernações webhook.For more information about keys and authorization, see Authorization keys and HTTP and webhook bindings.

    Definições do projeto Funções Azure

    Certifique-se de definir os direitos de acesso ao Anonymous.Make sure you set the Access rights to Anonymous. Se escolher o nível de funçãopredefinido, é necessário apresentar a chave de função nos pedidos para aceder ao ponto final da sua função.If you choose the default level of Function, you're required to present the function key in requests to access your function endpoint.

  5. Selecione OK para criar o projeto de função e função desencadeada em HTTP.Select OK to create the function project and HTTP-triggered function.

O modelo de C# projeto cria um projeto, instala o pacote Microsoft.NET.Sdk.Functions NuGet e define a estrutura-alvo.The project template creates a C# project, installs the Microsoft.NET.Sdk.Functions NuGet package, and sets the target framework. O novo projeto tem os seguintes ficheiros:The new project has the following files:

  • host.json: Permite-lhe configurar o anfitrião funções.host.json: Lets you configure the Functions host. Estas definições aplicam-se tanto quando se funciona localmente como em Azure.These settings apply both when running locally and in Azure. Para mais informações, consulte host.json reference.For more information, see host.json reference.

  • local.settings.json: Mantém as definições utilizadas durante as funções de funcionamento localmente.local.settings.json: Maintains settings used when running functions locally. Estas definições não são usadas quando se corre em Azure.These settings aren't used when running in Azure. Para mais informações, consulte o ficheiro de definições locais.For more information, see Local settings file.

    Importante

    Como o ficheiro local.settings.json pode conter segredos, deve excluí-lo do controlo de fontes do seu projeto.Because the local.settings.json file can contain secrets, you must excluded it from your project source control. A definição de Copy to Output Diretório para este ficheiro deve ser sempre copiar se for mais recente.The Copy to Output Directory setting for this file should always be Copy if newer.

Para mais informações, consulte o projeto da biblioteca de classes Functions.For more information, see Functions class library project.

Ficheiro de definições locaisLocal settings file

O ficheiro local.settings.json armazena definições de aplicativos, cordas de ligação e configurações usadas pelas ferramentas de desenvolvimento locais.The local.settings.json file stores app settings, connection strings, and settings used by local development tools. As definições no ficheiro local.settings.json são usadas apenas quando estiver a executar projetos localmente.Settings in the local.settings.json file are used only when you're running projects locally. O ficheiro de configurações locais tem esta estrutura: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>"
  }
}

Estas configurações são suportadas quando executa projetos localmente:These settings are supported when you run projects locally:

DefiniçãoSetting DescriçãoDescription
IsEncrypted Quando esta definição trueestiver definida, todos os valores são encriptados com uma chave de máquina local.When this setting is set to true, all values are encrypted with a local machine key. Usado func settings com comandos.Used with func settings commands. O valor falsepredefinido é .Default value is false.
Values Conjunto de definições de aplicação e cordas de ligação usadas quando um projeto está em execução local.Array of application settings and connection strings used when a project is running locally. Estes pares de valor-chave (string string) correspondem às definições AzureWebJobsStoragede aplicação na sua aplicação de função em Azure, como .These key-value (string-string) pairs correspond to application settings in your function app in Azure, like AzureWebJobsStorage. Muitos gatilhos e encadernações têm uma propriedade que Connection se refere a uma definição de aplicação de cordas de ligação, como para o gatilho de armazenamento Blob.Many triggers and bindings have a property that refers to a connection string app setting, like Connection for the Blob storage trigger. Para estas propriedades, necessita de uma Values definição de aplicação definida na matriz.For these properties, you need an application setting defined in the Values array.
AzureWebJobsStorageé uma definição de aplicação necessária para gatilhos que não o HTTP.AzureWebJobsStorage is a required app setting for triggers other than HTTP.
A versão 2.x e superior do tempoFUNCTIONS_WORKER_RUNTIMEde funcionamento das Funções requer a definição de [ ] ] que é gerada para o seu projeto pela Core Tools.Version 2.x and higher of the Functions runtime requires the [FUNCTIONS_WORKER_RUNTIME] setting, which is generated for your project by Core Tools.
Quando tiver o emulador de armazenamento Azure AzureWebJobsStorage UseDevelopmentStorage=trueinstalado localmente e definido para , core tools usa o emulador.When you have the Azure storage emulator installed locally and you set AzureWebJobsStorage to UseDevelopmentStorage=true, Core Tools uses the emulator. O emulador é útil durante o desenvolvimento, mas deve testar com uma ligação de armazenamento real antes da implantação.The emulator is useful during development, but you should test with an actual storage connection before deployment.
Os valores devem ser cordas e não objetos Ou matrizes JSON.Values must be strings and not JSON objects or arrays. Definir nomes não pode:incluir um cólon__( ) ou um duplo sublinhado ( ).Setting names can't include a colon (:) or a double underline (__). Estes caracteres são reservados pelo tempo de execução.These characters are reserved by the runtime.
Host As definições nesta secção personalizam o processo de hospedar funções quando executa projetos localmente.Settings in this section customize the Functions host process when you run projects locally. Estas configurações são separadas das definições host.json, que também se aplicam quando executa projetos em Azure.These settings are separate from the host.json settings, which also apply when you run projects in Azure.
LocalHttpPort Define a porta predefinida utilizada durante ofunc host start func runfuncionamento do hospedeiro das Funções locais (e ).Sets the default port used when running the local Functions host (func host start and func run). A --port opção de linha de comando tem precedência sobre esta definição.The --port command-line option takes precedence over this setting.
CORS Define as origens permitidas para a partilha de recursos de origem cruzada (CORS).Defines the origins allowed for cross-origin resource sharing (CORS). As origens são fornecidas como uma lista separada de vírem sem espaços.Origins are supplied as a comma-separated list with no spaces. O valor*wildcard é suportado, o que permite pedidos de qualquer origem.The wildcard value (*) is supported, which allows requests from any origin.
CORSCredentials Quando definido truepara, permite withCredentials pedidos.When set to true, allows withCredentials requests.
ConnectionStrings Uma coleção.A collection. Não utilize esta coleção para as cordas de ligação utilizadas pelas suas encadernações de função.Don't use this collection for the connection strings used by your function bindings. Esta coleção é utilizada apenas por estruturas que ConnectionStrings normalmente obtêm cordas de ligação da secção de um ficheiro de configuração, como o Quadro de Entidades.This collection is used only by frameworks that typically get connection strings from the ConnectionStrings section of a configuration file, like Entity Framework. As cordas de ligação neste objeto são adicionadas ao ambiente com o tipo de fornecedor de System.Data.SqlClient.Connection strings in this object are added to the environment with the provider type of System.Data.SqlClient. Os itens desta coleção não são publicados no Azure com outras definições de aplicações.Items in this collection aren't published to Azure with other app settings. Deve adicionar explicitamente estes Connection strings valores à recolha das definições da sua aplicação de função.You must explicitly add these values to the Connection strings collection of your function app settings. Se estiver a SqlConnection criar um código de funcionamento, deverá armazenar o valor de cadeia de ligação com as suas outras ligações nas Definições de Aplicação no portal.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.

As definições em locais.configurações.json não são carregadas automaticamente quando publica o projeto.Settings in local.settings.json aren't uploaded automatically when you publish the project. Para se certificar de que estas definições também existem na sua aplicação de funções no Azure, deve carregá-las depois de publicar o seu projeto.To make sure that these settings also exist in your function app in Azure, you must upload them after you publish your project. Para saber mais, consulte as definições da aplicação Function.To learn more, see Function app settings.

Os valores em ConnectionStrings nunca são publicados.Values in ConnectionStrings are never published.

Os valores de definições da aplicação de função também podem ser lidos no seu código como variáveis ambientais.The function app settings values can also be read in your code as environment variables. Para mais informações, consulte variáveis ambientais.For more information, see Environment variables.

Configure o projeto para o desenvolvimento localConfigure the project for local development

O tempo de funcionamento das Funções utiliza uma conta de Armazenamento Azure internamente.The Functions runtime uses an Azure Storage account internally. Para todos os tipos de gatilho sem acordo, que não sejam HTTP e webhooks, deve definir a chave Values.AzureWebJobsStorage para uma cadeia de ligação de conta De armazenamento de armazenamento de Azure válida.For all trigger types other than HTTP and webhooks, you must set the Values.AzureWebJobsStorage key to a valid Azure Storage account connection string. A sua aplicação de funções também pode utilizar o emulador de armazenamento Azure para a definição de ligação AzureWebJobsStorage que é exigida pelo projeto.Your function app can also use the Azure storage emulator for the AzureWebJobsStorage connection setting that is required by the project. Para utilizar o emulador, delineie o valor do AzureWebJobsStorage para UseDevelopmentStorage=true.To use the emulator, set the value of AzureWebJobsStorage to UseDevelopmentStorage=true. Mude esta definição para uma cadeia de ligação à conta de armazenamento real antes da implantação.Change this setting to an actual storage account connection string before deployment.

Para definir o fio de ligação da conta de armazenamento:To set the storage account connection string:

  1. No Estúdio Visual, abra o Cloud Explorer, expanda a conta de armazenamento > a sua conta de armazenamentoe, em seguida, no separador Properties copia o valor de corda de ligação primária.In Visual Studio, open Cloud Explorer, expand Storage Account > Your Storage Account, then in the Properties tab copy the Primary Connection String value.

  2. No seu projeto, abra o ficheiro local.settings.json e delineie o valor da chave AzureWebJobsStorage para a cadeia de ligação que copiou.In your project, open the local.settings.json file and set the value of the AzureWebJobsStorage key to the connection string you copied.

  3. Repita o passo anterior para adicionar chaves únicas à matriz Valores para quaisquer outras ligações exigidas pelas suas funções.Repeat the previous step to add unique keys to the Values array for any other connections required by your functions.

Adicione uma função ao seu projetoAdd a function to your project

Nas C# funções da biblioteca de classes, as encadernações utilizadas pela função são definidas aplicando atributos no código.In C# class library functions, the bindings used by the function are defined by applying attributes in the code. Quando cria os gatilhos de função a partir dos modelos fornecidos, os atributos do gatilho são aplicados para si.When you create your function triggers from the provided templates, the trigger attributes are applied for you.

  1. No Explorador de Soluções, clique com o botão direito do rato no nó do projeto e selecione Adicionar > Novo item.In Solution Explorer, right-click on your project node and select Add > New Item. Selecione Função Azure, escreva um nome para a classe e clique em Adicionar.Select Azure Function, type a Name for the class, and click Add.

  2. Escolha o gatilho, detete as propriedades de encadernação e clique em Criar.Choose your trigger, set the binding properties, and click Create. O exemplo seguinte mostra as definições ao criar uma função ativada pelo armazenamento da fila.The following example shows the settings when creating a Queue storage triggered function.

    Criar uma função desencadeada pela fila

    Este exemplo do gatilho usa uma cadeia de ligação com uma chave chamada QueueStorage.This trigger example uses a connection string with a key named QueueStorage. Esta definição de cadeia de ligação deve ser definida no ficheiro local.settings.json.This connection string setting must be defined in the local.settings.json file.

  3. Examine a classe recém-adicionada.Examine the newly added class. Você vê um método de execução estático, que é atribuído com o atributo FunName.You see a static Run method, that is attributed with the FunctionName attribute. Este atributo indica que o método é o ponto de entrada para a função.This attribute indicates that the method is the entry point for the function.

    Por exemplo, C# a seguinte classe representa uma função básica de armazenamento de fila desencadeada: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}");
            }
        }
    }
    

    É aplicado um atributo específico de encadernação a cada parâmetro de ligação fornecido ao método do ponto de entrada.A binding-specific attribute is applied to each binding parameter supplied to the entry point method. O atributo toma a informação vinculativa como parâmetros.The attribute takes the binding information as parameters. No exemplo anterior, o primeiro parâmetro tem um atributo QueueTrigger aplicado, indicando a função desencadeada pela fila.In the previous example, the first parameter has a QueueTrigger attribute applied, indicating queue triggered function. O nome da fila e o nome de definição de cordas de ligação são passados como parâmetros para o atributo QueueTrigger.The queue name and connection string setting name are passed as parameters to the QueueTrigger attribute. Para mais informações, consulte as encadernaçõesde armazenamento da Fila Azure para funções Azure .For more information, see Azure Queue storage bindings for Azure Functions.

Pode utilizar o procedimento acima para adicionar mais funções ao seu projeto de aplicação de funções.You can use the above procedure to add more functions to your function app project. Cada função no projeto pode ter um gatilho diferente, mas uma função deve ter exatamente um gatilho.Each function in the project can have a different trigger, but a function must have exactly one trigger. Para mais informações, consulte as Funções Azure despoletou e encaderna conceitos.For more information, see Azure Functions triggers and bindings concepts.

Adicionar enlacesAdd bindings

Tal como acontece com os gatilhos, as ligações de entrada e de saída são adicionadas à sua função como atributos vinculativos.As with triggers, input and output bindings are added to your function as binding attributes. Adicione encadernações a uma função da seguinte forma:Add bindings to a function as follows:

  1. Certifique-se de configurar o projeto para o desenvolvimento local.Make sure you've configured the project for local development.

  2. Adicione o pacote de extensão NuGet apropriado para a ligação específica.Add the appropriate NuGet extension package for the specific binding. Para mais informações, consulte o desenvolvimento local C# utilizando o Visual Studio no artigo Triggers and Bindings.For more information, see Local C# development using Visual Studio in the Triggers and Bindings article. Os requisitos específicos do pacote NuGet são encontrados no artigo de referência para a encadernação.The binding-specific NuGet package requirements are found in the reference article for the binding. Por exemplo, encontre os requisitos do pacote para o gatilho dos Centros de Eventos no artigo de referência vinculativo do Event Hubs.For example, find package requirements for the Event Hubs trigger in the Event Hubs binding reference article.

  3. Se existirem definições de aplicações que a encadernação necessita, adicione-as à coleção Valores no ficheiro de definição local.If there are app settings that the binding needs, add them to the Values collection in the local setting file. Estes valores são utilizados quando a função funciona localmente.These values are used when the function runs locally. Quando a função funciona na aplicação de funções em Azure, as definições da aplicação de função são utilizadas.When the function runs in the function app in Azure, the function app settings are used.

  4. Adicione o atributo de ligação adequado à assinatura do método.Add the appropriate binding attribute to the method signature. No exemplo seguinte, uma mensagem de fila despoleta a função, e a ligação de saída cria uma nova mensagem de fila com o mesmo texto numa fila diferente.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;
        }
    }
    

    A ligação ao armazenamento de fila é obtida a partir da definição AzureWebJobsStorage.The connection to Queue storage is obtained from the AzureWebJobsStorage setting. Para mais informações, consulte o artigo de referência para a ligação específica.For more information, see the reference article for the specific binding.

Esta tabela mostra as encadernações que são suportadas nas principais versões do tempo de funcionamento das Funções Azure:This table shows the bindings that are supported in the major versions of the Azure Functions runtime:

TipoType 1.x1.x 2.x e superior12.x and higher1 AcionadorTrigger InputInput SaídaOutput
Armazenamento de blobsBlob storage
BD do CosmosCosmos DB
Event GridEvent Grid
Hubs de EventosEvent Hubs
HTTP e webhooksHTTP & webhooks
Hub IoTIoT Hub
Tabelas do Microsoft Graph
Excel
Microsoft Graph
Excel tables
Microsoft Graph
ficheiros OneDrive
Microsoft Graph
OneDrive files
E-mail do Microsoft Graph
Outlook
Microsoft Graph
Outlook email
Eventos
do Microsoft Graph
Microsoft Graph
events
Fichas
Microsoft Graph Auth
Microsoft Graph
Auth tokens
Aplicações MóveisMobile Apps
Hubs de NotificaçãoNotification Hubs
Armazenamento de filasQueue storage
SendGridSendGrid
Service BusService Bus
SinaleiroSignalR
Armazenamento de tabelasTable storage
TemporizadorTimer
TwilioTwilio

1 A partir do tempo de execução da versão 2.x, todas as encadernações, exceto HTTP e Temporizador, devem ser registadas.1 Starting with the version 2.x runtime, all bindings except HTTP and Timer must be registered. Ver Registar extensões de encadernação.See Register binding extensions.

Testar funçõesTesting functions

As Ferramentas de Núcleo das Funções do Azure permitem-lhe executar o projeto de funções do Azure no seu computador de programação local.Azure Functions Core Tools lets you run Azure Functions project on your local development computer. Deverá instalar essas ferramentas da primeira vez que iniciar uma função do Visual Studio.You are prompted to install these tools the first time you start a function from Visual Studio.

Para testar a sua função, prima F5.To test your function, press F5. Se solicitado, aceite o pedido do Visual Studio para transferir e instalar as ferramentas de Núcleo das Funções do Azure (CLI).If prompted, accept the request from Visual Studio to download and install Azure Functions Core (CLI) tools. Também poderá ativar a exceção da firewall para que todas as ferramentas possam aceitar os pedidos de HTTP.You may also need to enable a firewall exception so that the tools can handle HTTP requests.

Com o projeto em execução, pode testar o seu código como testaria a função implementada.With the project running, you can test your code as you would test deployed function. Para mais informações, consulte Estratégias para testar o seu código em Funções Azure.For more information, see Strategies for testing your code in Azure Functions. Quando se corre em modo dedepura, os breakpoints são atingidos no Estúdio Visual como esperado.When running in debug mode, breakpoints are hit in Visual Studio as expected.

Para saber mais sobre a utilização das Ferramentas Nucleares das Funções Azure, consulte as funções de Código e teste azure localmente.To learn more about using the Azure Functions Core Tools, see Code and test Azure functions locally.

Publicar no AzurePublish to Azure

Ao publicar no Visual Studio, um dos dois métodos de implementação é usado:When publishing from Visual Studio, one of two deployment methods are used:

Utilize os seguintes passos para publicar o seu projeto numa aplicação de função no Azure.Use the following steps to publish your project to a function app in Azure.

  1. No Explorador de Soluções, clique com o botão direito do rato no projeto e selecione Publicar.In Solution Explorer, right-click the project and select Publish.

  2. Na Escolha de um alvo de publicação, utilize as opções de publicação especificadas no seguinte quadro:In Pick a publish target, use the publish options specified in the following table:

    OpçãoOption DescriçãoDescription
    App de função AzureAzure Function App Crie uma aplicação de função num ambiente de nuvem Azure.Create a function app in an Azure cloud environment.
    Criar novosCreate new Uma nova aplicação de funções, com recursos relacionados, é criada no Azure.A new function app, with related resources, is created in Azure.
    Se escolher O Select Existing, todos os ficheiros da aplicação de função existente no Azure são substituídos por ficheiros do projeto local.If you choose Select Existing, all files in the existing function app in Azure are overwritten by files from the local project. Utilize esta opção apenas quando republicar as atualizações para uma aplicação de função existente.Use this option only when you republish updates to an existing function app.
    Executar a partir de arquivo de pacoteRun from package file A sua aplicação de funções é implementada utilizando o Zip Deploy com o modo Run-From-Package ativado.Your function app is deployed using Zip Deploy with Run-From-Package mode enabled. Esta implementação, que resulta num melhor desempenho, é a forma recomendada de executar as suas funções.This deployment, which results in better performance, is the recommended way of running your functions.
    Se não utilizar esta opção, certifique-se de impedir que o seu projeto de aplicação de funções funcione localmente antes de publicar no Azure.If you don't use this option, make sure to stop your function app project from running locally before you publish to Azure.

    Escolher um destino de publicação

  3. Selecione Publicar.Select Publish. Se ainda não se inscreveu na sua conta Azure do Visual Studio, selecione Sign-in.If you haven't already signed-in to your Azure account from Visual Studio, select Sign-in. Também pode criar uma conta Azure gratuita.You can also create a free Azure account.

  4. No Serviço de Aplicações Azure: Criar novos, utilize os valores especificados no seguinte quadro:In Azure App Service: Create new, use the values specified in the following table:

    DefiniçãoSetting ValorValue DescriçãoDescription
    NomeName Nome globalmente exclusivoGlobally unique name Nome que identifica exclusivamente a sua nova aplicação de funções.Name that uniquely identifies your new function app. Aceite este nome ou insira um novo nome.Accept this name or enter a new name. Os caracteres a-zválidos são: , 0-9e -.Valid characters are: a-z, 0-9, and -.
    AssinaturaSubscription A sua subscriçãoYour subscription A subscrição do Azure que deve utilizar.The Azure subscription to use. Aceite esta subscrição ou selecione uma nova da lista de lançamentos.Accept this subscription or select a new one from the drop-down list.
    Grupo de RecursosResource Group Nome do seu grupo de recursosName of your resource group O grupo de recursos para criar a sua aplicação de função.The resource group in which to create your function app. Selecione um grupo de recursos existente a partir da lista de drop-down ou escolha new para criar um novo grupo de recursos.Select an existing resource group from the drop-down list or choose New to create a new resource group.
    Plano de HospedagemHosting Plan Nome do seu plano de hospedagemName of your hosting plan Selecione Novo para configurar um plano sem servidores.Select New to configure a serverless plan. Certifique-se de escolher o Consumo em tamanho.Make sure to choose the Consumption under Size. Quando publica o seu projeto numa aplicação de função que funciona num plano de consumo,paga apenas pelas execuções da sua aplicação de funções.When you publish your project to a function app that runs in a Consumption plan, you pay only for executions of your functions app. Outros planos de hospedagem incorrem em custos mais elevados.Other hosting plans incur higher costs. Se executar um plano diferente do Consumo, deve gerir a escala da sua aplicação de funções.If you run in a plan other than Consumption, you must manage the scaling of your function app. Escolha um Local numa região próxima ou de outros serviços a que as suas funções acedam.Choose a Location in a region near you or other services your functions access.
    Armazenamento AzureAzure Storage Conta de armazenamento para fins geraisGeneral-purpose storage account Uma conta de Armazenamento Azure é exigida pelo tempo de funcionamento das funções.An Azure Storage account is required by the Functions runtime. Selecione Novo para configurar uma conta de armazenamento de uso geral.Select New to configure a general-purpose storage account. Também pode escolher uma conta existente que satisfaça os requisitos da conta de armazenamento.You can also choose an existing account that meets the storage account requirements.

    Caixa de diálogo Criar App Service

  5. Selecione Criar para criar uma aplicação de função e os seus recursos relacionados em Azure com estas definições e implementar o código do projeto de função.Select Create to create a function app and its related resources in Azure with these settings and deploy your function project code.

  6. Após a implementação concluída, tome nota do valor URL do Site, que é o endereço da sua aplicação de funções em Azure.After the deployment completes, make a note of the Site URL value, which is the address of your function app in Azure.

    Mensagem de publicação bem-sucedida

Definições da Aplicação de funçõesFunction app settings

Quaisquer configurações adicionadas nas configurações locais.definições.json também devem ser adicionadas à aplicação de funções em Azure.Any settings you added in the local.settings.json must be also added to the function app in Azure. Estas definições não são carregadas automaticamente quando publica o projeto.These settings aren't uploaded automatically when you publish the project.

A forma mais fácil de fazer o upload das definições necessárias para a sua aplicação de funções no Azure é utilizar as Definições de Aplicação de Gestão... link que é apresentado depois de publicar com sucesso o seu projeto.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.

Isto exibe o diálogo de Definições de Aplicação para a aplicação de funções, onde pode adicionar novas definições de aplicação ou modificar as existentes.This displays the Application Settings dialog for the function app, where you can add new application settings or modify existing ones.

Local representa um valor de definição no ficheiro local.settings.json, e Remote é a configuração atual na aplicação de função em Azure.Local represents a setting value in the local.settings.json file, and Remote is the current setting in the function app in Azure. Escolha adicionar definição para criar uma nova definição de aplicação.Choose Add Setting to create a new app setting. Utilize o valor de inserção do link Local para copiar um valor de definição para o campo Remoto.Use the Insert value from Local link to copy a setting value to the Remote field. As alterações pendentes são escritas no ficheiro de definições locais e na aplicação de funções quando selecionar OK.Pending changes are written to the local settings file and the function app when you select OK.

Nota

Por predefinição, o ficheiro local.settings.json não é verificado no controlo de origem.By default, the local.settings.json file is not checked into source control. Isto significa que quando se clona um projeto de Funções locais a partir do controlo de fontes, o projeto não tem um ficheiro 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. Neste caso, é necessário criar manualmente o ficheiro local.settings.json na raiz do projeto para que o diálogo de Definições de Aplicação funcione como esperado.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.

Também pode gerir as definições de aplicação de uma destas outras formas:You can also manage application settings in one of these other ways:

Funções de monitorizaçãoMonitoring functions

A forma recomendada de monitorizar a execução das suas funções é integrando a sua aplicação de funções com insights de aplicação Do Azure.The recommended way to monitor the execution of your functions is by integrating your function app with Azure Application Insights. Quando cria uma aplicação de função no portal Azure, esta integração é feita por padrão.When you create a function app in the Azure portal, this integration is done for you by default. No entanto, quando cria a sua aplicação de funções durante a publicação do Visual Studio, a integração na sua aplicação de funções no Azure não está feita.However, when you create your function app during Visual Studio publishing, the integration in your function app in Azure isn't done.

Para ativar insights de aplicação para a sua aplicação de funções:To enable Application Insights for your function app:

As funções facilitam a adição de Informações de Aplicação a uma aplicação de função do [portal Azure].Functions makes it easy to add Application Insights integration to a function app from the Azure portal.

  1. No [portal][Portal Azure], digite Function Apps na barra de pesquisa na parte superior da página, escolha a sua aplicação de função e, em seguida, selecione o Banner Application Insights não é configurado banner na parte superior da janela.In the portal, type Function Apps in the search bar at the top of the page, choose your function app, and then select the Application Insights is not configured banner at the top of the window. Se não vir este banner, então a sua aplicação já tem Informações de Aplicação ativadas.If you don't see this banner, then your app already has Application Insights enabled.

    Ativar insights de aplicação a partir do portal

  2. Crie um recurso Deinsights de Aplicação utilizando as definições especificadas na tabela abaixo da imagem.Create an Application Insights resource by using the settings specified in the table below the image.

    Criar um recurso do Application Insights

    DefiniçãoSetting Valor sugeridoSuggested value DescriçãoDescription
    NomeName Nome exclusivo da aplicaçãoUnique app name É mais fácil usar o mesmo nome que a sua aplicação de funções, que deve ser única na sua subscrição.It's easiest to use the same name as your function app, which must be unique in your subscription.
    LocalizaçãoLocation Europa ocidentalWest Europe Se possível, utilize a mesma região que a sua app de funções, ou uma que esteja próxima daquela região.If possible, use the same region as your function app, or one that's close to that region.
  3. Selecione OK.Select OK. O recurso Application Insights é criado no mesmo grupo de recursos e subscrição que a sua aplicação de funções.The Application Insights resource is created in the same resource group and subscription as your function app. Depois de criado o recurso, feche a janela Application Insights.After the resource is created, close the Application Insights window.

  4. Volte para a aplicação de funções, selecione as definiçõesde Aplicação e, em seguida, desloque-se para as definiçõesda Aplicação .Back in your function app, select Application settings, and then scroll down to Application settings. Se vir uma APPINSIGHTS_INSTRUMENTATIONKEYdefinição chamada , a integração de Insights de Aplicação está ativada para a sua aplicação de função em funcionamento no Azure.If you see a setting named APPINSIGHTS_INSTRUMENTATIONKEY, Application Insights integration is enabled for your function app running in Azure.

Para saber mais, consulte as Funções Monitor Azure.To learn more, see Monitor Azure Functions.

Passos SeguintesNext steps

Para saber mais sobre as Ferramentas Nucleares das Funções Azure, consulte as funções de Código e teste azure localmente.To learn more about the Azure Functions Core Tools, see Code and test Azure functions locally.

Para saber mais sobre o desenvolvimento de funções como bibliotecas de classes .NET, consulte a referência do desenvolvedor de C# Funções Azure.To learn more about developing functions as .NET class libraries, see Azure Functions C# developer reference. Este artigo também se liga a exemplos de como usar atributos para declarar os vários tipos de encadernações suportadas pelas Funções Azure.This article also links to examples of how to use attributes to declare the various types of bindings supported by Azure Functions.