Criar sua primeira função usando o Visual StudioCreate your first function using Visual Studio

O Azure Functions lhe permite executar seu código em um ambiente sem servidor sem que seja preciso primeiro criar uma VM ou publicar um aplicativo Web.Azure Functions lets you execute your code in a serverless environment without having to first create a VM or publish a web application.

Neste artigo, você aprenderá a usar o Visual Studio 2019 para criar e testar localmente uma função “olá, mundo” e publicá-la no Azure.In this article, you learn how to use Visual Studio 2019 to locally create and test a "hello world" function and then publish it to Azure. Este início rápido foi criado para o Visual Studio 2019.This quickstart is designed for Visual Studio 2019. Ao criar um projeto do Functions usando o Visual Studio 2017, é necessário instalar primeiro as ferramentas de Azure Functions mais recentes.When creating a Functions project using Visual Studio 2017, you must first install the latest Azure Functions tools.

Resposta da função localhost no navegador

Pré-requisitosPrerequisites

Para concluir este tutorial, é necessário instalar primeiro o Visual Studio 2019.To complete this tutorial, you must first install Visual Studio 2019. Garanta que a carga de trabalho de desenvolvimento do Azure também seja instalada.Make sure that the Azure development workload is also installed.

Instalar o Visual Studio com a carga de trabalho de desenvolvimento do Azure

Se você não tiver uma assinatura 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.

Crie um projeto de aplicativo de funçõesCreate a function app project

O modelo de projeto do Azure Functions no Visual Studio cria um projeto que pode ser publicado em um aplicativo de funções no Azure.The Azure Functions project template in Visual Studio creates a project that can be published to a function app in Azure. Você pode usar um aplicativo de funções para as funções do grupo como uma unidade lógica para gerenciamento, implantação e compartilhamento de recursos.You can use a function app to group functions as a logical unit for management, deployment, and sharing of resources.

  1. No Visual Studio, no menu Arquivo, selecione Novo > Projeto.In Visual Studio, on the File menu, select New > Project.

  2. Na caixa de diálogo Criar um projeto, pesquise functions, escolha o modelo do Azure Functions e selecione Avançar.In the Create a new project dialog box, search for functions, choose the Azure Functions template, and select Next.

  3. Insira um nome para seu projeto e selecione Criar.Enter a name for your project, and select Create. O nome do aplicativo de funções deve ser válido como um namespace do C# e, portanto, não use outros caracteres não alfanuméricos, hífens ou sublinhados.The function app name must be valid as a C# namespace, so don't use underscores, hyphens, or any other nonalphanumeric characters.

  4. Em Criar um aplicativo Azure Functions, use as opções a seguir:In Create a new Azure Functions application, use the following options:

    • Azure Functions v2 (.NET Core) 1Azure Functions v2 (.NET Core) 1
    • Gatilho HTTPHTTP trigger
    • Conta de Armazenamento: Emulador de armazenamentoStorage Account: Storage Emulator
    • Nível de autorização: AnônimoAuthorization level: Anonymous
    OpçãoOption Valor sugeridoSuggested value DESCRIÇÃODescription
    Tempo de execução do FunctionsFunctions runtime Azure Functions 2.x
    (.NET Core)
    Azure Functions 2.x
    (.NET Core)
    Essa configuração cria um projeto de função que usa o tempo de execução versão 2.x do Azure Functions, o qual dá suporte a .NET Core.This setting creates a function project that uses the version 2.x runtime of Azure Functions, which supports .NET Core. O Azure Functions 1.x dá suporte ao .NET Framework.Azure Functions 1.x supports the .NET Framework. Para obter mais informações, consulte Direcionar o tempo de execução do Azure Functions.For more information, see Target Azure Functions runtime version.
    Modelo de funçãoFunction template Gatilho HTTPHTTP trigger Essa configuração cria uma função acionada por uma solicitação HTTP.This setting creates a function triggered by an HTTP request.
    Conta de armazenamentoStorage Account Emulador de armazenamentoStorage Emulator Um gatilho HTTP não usa a conexão da conta de Armazenamento do Microsoft Azure.An HTTP trigger doesn't use the Azure Storage account connection. Todos os outros tipos de gatilho exigem uma cadeia de conexão de conta de armazenamento válida.All other trigger types require a valid Storage account connection string. Como o Functions requer uma conta de armazenamento, uma é atribuída ou criada quando você publica seu projeto no Azure.Because Functions requires a storage account, one is assigned or created when you publish your project to Azure.
    Nível de autorizaçãoAuthorization level 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. Essa configuração de autorização torna fácil testar a nova função.This authorization setting makes it easy to test your new function. Para obter mais informações sobre chaves e autorização, consulte Chaves de autorização no associações HTTP e webhook.For more information about keys and authorization, see Authorization keys in the HTTP and webhook bindings.

    Observação

    Verifique se você definiu o Nível de autorização como Anonymous.Make sure you set the Authorization level to Anonymous. Se você escolher o nível padrão de Function, é necessário que você apresente a chave da função em solicitações para acessar seu ponto de extremidade da 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 Criar para criar o projeto de função e a função disparada por HTTP.Select Create to create the function project and HTTP-triggered function.

O Visual Studio cria um projeto e uma classe que contém o código clichê do tipo de função do gatilho HTTP.Visual Studio creates a project and class that contains boilerplate code for the HTTP trigger function type. O atributo FunctionName no método define o nome da função, que é HttpTrigger por padrão.The FunctionName attribute on the method sets the name of the function, which by default is HttpTrigger. O atributo HttpTrigger especifica que a função é disparada por uma solicitação HTTP.The HttpTrigger attribute specifies that the function is triggered by an HTTP request. O código padronizado envia uma resposta HTTP que inclui um valor do corpo de solicitação ou da cadeia de consulta.The boilerplate code sends an HTTP response that includes a value from the request body or query string.

É possível estender as funcionalidades de sua função usando associações de entrada e de saída aplicando os atributos adequados ao método.You can expand the capabilities of your function using input and output bindings by applying the appropriate attributes to the method. Para obter mais informações, consulte a seção Gatilhos e associações da referência do desenvolvedor C# do Azure Functions.For more information, see the Triggers and bindings section of the Azure Functions C# developer reference.

Agora que você criou o seu projeto de função e uma função disparada por HTTP, poderá testá-la em seu computador local.Now that you've created your function project and an HTTP-triggered function, you can test it on your local computer.

Executar a função localmenteRun the function locally

O Visual Studio integra-se ao Azure Functions Core Tools para que você possa testar suas funções localmente usando o tempo de execução completo do Functions.Visual Studio integrates with Azure Functions Core Tools so that you can test your functions locally using the full Functions runtime.

  1. Para executar a função, pressione F5.To run your function, press F5. É necessário habilitar a exceção de firewall para que as ferramentas possam lidar com solicitações HTTP.You may need to enable a firewall exception so that the tools can handle HTTP requests. Os níveis de autorização nunca são impostos quando estão em execução localmente.Authorization levels are never enforced when running locally.

  2. Copie a URL da sua função da saída de tempo de execução do Azure Functions.Copy the URL of your function from the Azure Functions runtime output.

    Tempo de execução local do Azure

  3. Cole a URL para a solicitação HTTP na barra de endereços do navegador.Paste the URL for the HTTP request into your browser's address bar. Acrescente o valor de cadeia de consulta ?name=<YOUR_NAME> a essa URL e execute a solicitação.Append the query string ?name=<YOUR_NAME> to this URL and execute the request. O exemplo a seguir mostra a resposta no navegador à solicitação GET local retornada pela função:The following shows the response in the browser to the local GET request returned by the function:

    Resposta da função localhost no navegador

  4. Para interromper a depuração, pressione Shift + F5.To stop debugging, press Shift + F5.

Após verificar se a função foi executada corretamente no computador local, é hora de publicar o projeto no Azure.After you have verified that the function runs correctly on your local computer, it's time to publish the project to Azure.

Publicar o projeto no AzurePublish the project to Azure

Você deve ter um aplicativo de funções em sua assinatura do Azure antes de publicar seu projeto.You must have a function app in your Azure subscription before you can publish your project. A publicação do Visual Studio cria um aplicativo de funções para você na primeira vez que você publica seu projeto.Visual Studio publishing creates a function app for you the first time you publish your project.

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

  2. Na caixa de diálogo Selecione um destino de publicação, use as opções publicar, conforme especificado na tabela embaixo da imagem:In the Pick a publish target dialog, use the publish options as specified in the table below the image:

    Escolher um destino de publicação

    OpçãoOption DESCRIÇÃODescription
    Plano de consumo do Azure FunctionsAzure Functions Consumption plan Quando você publica seu projeto em um aplicativo de funções executado em um Plano de consumo, você paga apenas pelas execuções do seu aplicativo de funções.When you publish your project to a function app that runs in a Consumption plan, you only pay for executions of your functions app. Outros planos de hospedagem incorrem em custos mais altos.Other hosting plans incur higher costs. Para saber mais, confira Escala e hospedagem do Azure Functions.To learn more, see Azure Functions scale and hosting.
    Criar novoCreate new Um novo aplicativo de funções com recursos relacionados é criado no Azure.A new function app, with related resources, is created in Azure. Quando você escolhe selecionar existente, todos os arquivos no aplicativo de funções existente no Azure são substituídos pelos arquivos do projeto local.When you choose Select Existing, all files in the existing function app in Azure are overwritten by files from the local project. Use essa opção somente quando republicar atualizações para um aplicativo de funções existente.Only use this option when republishing updates to an existing function app.
    Executar com base no arquivo de pacoteRun from package file Seu aplicativo de funções é implantado usando a Implantação de Zip com o modo Run-From-Package habilitado.Your function app is deployed using Zip Deploy with Run-From-Package mode enabled. Essa é a maneira recomendada de executar suas funções, que resulta em um melhor desempenho.This is the recommended way of running your functions, which results in better performance. Quando não estiver usando essa opção, verifique se você interrompeu a execução local do projeto de aplicativo de funções antes de publicar no Azure.When not using this option, make sure to stop your function app project from running locally before you publish to Azure.
  3. Selecione Publicar.Select Publish. Se você ainda não entrou em sua conta do Azure do Visual Studio, selecione Entrar.If you haven't already signed-in to your Azure account from Visual Studio, select Sign-in. Também é possível criar uma conta gratuita do Azure.You can also create a free Azure account.

  4. No Serviço de Aplicativo: Criar, use as configurações de Hospedagem conforme especificadas na tabela embaixo da imagem:In the App Service: Create new dialog, use the Hosting settings as specified in the table below the image:

    Criar caixa de diálogo do Serviço de Aplicativo

    ConfiguraçãoSetting Valor sugeridoSuggested value DescriçãoDescription
    NomeName Nome globalmente exclusivoGlobally unique name Nome que identifica seu novo aplicativo de funções de forma exclusiva.Name that uniquely identifies your new function app. Os caracteres válidos são a-z, 0-9 e -.Valid characters are a-z, 0-9, and -.
    AssinaturaSubscription Escolha sua assinaturaChoose your subscription A assinatura do Azure a utilizar.The Azure subscription to use.
    Grupo de RecursosResource Group myResourceGroupmyResourceGroup Nome do grupo de recursos no qual criar o seu aplicativo de funções.Name of the resource group in which to create your function app. Escolha Novo para criar um novo grupo de recursos.Choose New to create a new resource group.
    Plano de hospedagemHosting Plan Plano de consumoConsumption plan Escolha o Consumo em Tamanho após selecionar Novo para criar um plano sem servidor.Make sure to choose the Consumption under Size after you select New to create a serverless plan. Também, escolha um Local em uma região perto de você ou perto de outros serviços que suas funções acessam.Also, choose a Location in a region near you or near other services your functions access. Quando você executa em um plano diferente de Consumo, deve gerenciar o dimensionamento de seu aplicativo de funções.When you run in a plan other than Consumption, you must manage the scaling of your function app.
    Armazenamento do AzureAzure Storage Conta de armazenamento para uso geralGeneral-purpose storage account Uma conta de armazenamento do Azure é necessária para o tempo de execução de funções.An Azure storage account is required by the Functions runtime. Selecione Novo para criar uma conta de armazenamento para uso geral.Select New to create a general-purpose storage account. Você também pode usar uma conta existente que atenda aos requisitos da conta de armazenamento.You can also use an existing account that meets the storage account requirements.
  5. Selecione Criar para criar um aplicativo de funções e recursos relacionados no Azure com essas configurações e implantar seu código de projeto de função.Select Create to create a function app and related resources in Azure with these settings and deploy your function project code.

  6. Após a conclusão da implantação, anote o valor da URL do Site, que é o endereço do seu aplicativo de funções no Azure.After the deployment is complete, make a note of the Site URL value, which is the address of your function app in Azure.

    Publicar mensagem de êxito

Testar sua função no AzureTest your function in Azure

  1. Copie a URL base do aplicativo de funções da página de perfil de publicação.Copy the base URL of the function app from the Publish profile page. Substitua a parte localhost:port da URL que você usou ao testar a função localmente pela nova URL base.Replace the localhost:port portion of the URL you used when testing the function locally with the new base URL. Como anteriormente, acrescente o valor de cadeia de consulta ?name=<YOUR_NAME> a essa URL e execute a solicitação.As before, make sure to append the query string ?name=<YOUR_NAME> to this URL and execute the request.

    A URL que chama a função HTTP disparada deve ser no seguinte formato:The URL that calls your HTTP triggered function should be in the following format:

     http://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>?name=<YOUR_NAME> 
    
  2. Cole essa nova URL para a solicitação HTTP na barra de endereços do navegador.Paste this new URL for the HTTP request into your browser's address bar. O exemplo a seguir mostra a resposta no navegador à solicitação GET remota retornada pela função:The following shows the response in the browser to the remote GET request returned by the function:

    Resposta da função no navegador

Próximas etapasNext steps

Você usou o Visual Studio para criar e publicar um aplicativo de funções C# no Azure com uma função disparada por HTTP simples.You have used Visual Studio to create and publish a C# function app in Azure with a simple HTTP triggered function. Para saber mais sobre como desenvolver funções como bibliotecas de classes do .NET, consulte Referência do desenvolvedor de C# do Azure Functions.To learn more about developing functions as .NET class libraries, see Azure Functions C# developer reference.