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

As Funções do Azure permitem-lhe executar o seu código num ambiente sem servidor, sem que tenha de criar primeiro uma VM ou publicar uma aplicação 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, em seguida, 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 guia de início rápido foi projetado para o Visual Studio 2019.This quickstart is designed for Visual Studio 2019. Ao criar um projeto do Functions usando o Visual Studio 2017, você deve primeiro instalar 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 browser

Pré-requisitosPrerequisites

Para concluir este tutorial, você deve primeiro instalar o Visual Studio 2019.To complete this tutorial, you must first install Visual Studio 2019. Verifique se a carga de trabalho de desenvolvimento do Azure também está 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.

Criar um projeto de aplicação de funçãoCreate a function app project

O modelo do projeto das Funções do Azure no Visual Studio cria um projeto que pode ser publicado numa aplicação 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ção para agrupar funções 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 novo projeto , procure functions, escolha o modelo de 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 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. Em criar um novo aplicativo Azure Functions, use as seguintes opções: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: ModoAuthorization level: Anonymous
    OpçãoOption Valor sugeridoSuggested value DescriçãoDescription
    Tempo de execução de funçõesFunctions 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 da versão 2. x de Azure Functions, que dá suporte ao .NET Core.This setting 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 obter mais informações, consulte Target Azure Functions Runtime versão.For more information, see Target Azure Functions runtime version.
    Modelo de funçãoFunction template Gatilho HTTPHTTP trigger Essa configuração cria uma função disparada por uma solicitação HTTP.This setting creates a function triggered by an HTTP request.
    Storage AccountStorage Account Emulador de armazenamentoStorage Emulator Um gatilho HTTP não usa a conexão da conta de armazenamento do Azure.An HTTP trigger doesn't use the Azure Storage account connection. Todos os outros tipos de acionadores requerem uma cadeia de ligação da conta de Armazenamento válida.All other trigger types require a valid Storage account connection string. Como as funções exigem 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 ModoAnonymous 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 a autorização, veja Chaves de autorização, no artigo Enlaces HTTP e webhook.For more information about keys and authorization, see Authorization keys in the HTTP and webhook bindings.

    Nota

    Certifique-se de definir o nível de Anonymous autorização como.Make sure you set the Authorization level to Anonymous. Se você escolher o nível padrão de Function, será necessário apresentar a chave de função em solicitações para acessar seu ponto de extremidade de 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 código clichê para o tipo de função de 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 por padrão é HttpTrigger.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 automático envia uma resposta HTTP que inclui um valor da cadeia de consulta ou de corpo de pedido.The boilerplate code sends an HTTP response that includes a value from the request body or query string.

Você pode expandir os recursos de sua função usando associações de entrada e saída aplicando os atributos apropriados 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, veja a secção Acionadores e enlaces da Referência para Programadores do Funções do Azure C#.For more information, see the Triggers and bindings section of the Azure Functions C# developer reference.

Agora que criou o projeto de função e uma função acionada por HTTP, pode testá-la no 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 localmente a funçãoRun the function locally

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

  1. Para executar sua função, pressione F5.To run your function, press F5. Talvez seja necessário habilitar uma 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 aplicados durante a execução local.Authorization levels are never enforced when running locally.

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

    Tempo de execução local do Azure

  3. Cole o URL do pedido HTTP na barra de endereço do browser.Paste the URL for the HTTP request into your browser's address bar. Anexe a cadeia de consulta ?name=<YOUR_NAME> a este URL e execute o pedido.Append the query string ?name=<YOUR_NAME> to this URL and execute the request. O exemplo apresentado em seguida mostra a resposta no browser relativamente ao pedido GET devolvido retornado 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 browser

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

Depois de verificar que a função é executada corretamente no computador local, deve 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

Deverá ter uma aplicação de funções na sua subscrição do Azure antes de poder publicar o 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ê publicar seu projeto.Visual Studio publishing creates a function app for you the first time you publish your project.

  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 caixa de diálogo escolher um destino de publicação , use as opções de publicação conforme especificado na tabela abaixo 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 de Azure FunctionsAzure Functions Consumption plan Quando você publica seu projeto em um aplicativo de funções que é 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, consulte Azure Functions escala e hospedagem.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 escolhe Selecionar Existente, todos os ficheiros na aplicação de funções existentes no Azure são substituídos pelos ficheiros 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. Utilize esta opção apenas ao voltar a publicar atualizações numa aplicação de funções existente.Only use this option when republishing updates to an existing function app.
    Executar do arquivo de pacoteRun from package file Seu aplicativo de funções é implantado usando a implantação de zip com o modo de execução do pacote habilitado.Your function app is deployed using Zip Deploy with Run-From-Package mode enabled. Essa é a maneira recomendada de executar suas funções, o 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, certifique-se de parar o projeto de aplicativo de funções de ser executado localmente 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 por meio do Visual Studio, selecione entrar.If you haven't already signed-in to your Azure account from Visual Studio, select Sign-in. Você também pode criar uma conta gratuita do Azure.You can also create a free Azure account.

  4. No serviço de aplicativo: Criar nova caixa de diálogo, use as configurações de hospedagem conforme especificado na tabela abaixo da imagem:In the App Service: Create new dialog, use the Hosting settings as specified in the table below the image:

    Caixa de diálogo Criar App Service

    DefiniçãoSetting Valor sugeridoSuggested value DescriçãoDescription
    NameName 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. Os carateres válidos são a-z, 0-9 e -.Valid characters are a-z, 0-9, and -.
    SubscriçãoSubscription Escolher a sua subscriçãoChoose your subscription A subscrição do Azure que deve utilizar.The Azure subscription to use.
    Grupo de RecursosResource Group myResourceGroupmyResourceGroup Nome do grupo de recursos no qual a sua aplicação de funções será criada.Name of the resource group in which to create your function app. Escolha Novo para criar um grupo de recursos novo.Choose New to create a new resource group.
    Plano de hospedagemHosting Plan Plano de consumoConsumption plan Certifique-se de escolher o consumo em tamanho depois de 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. Escolha também uma Localização numa região perto de si ou de outros serviços aos quais as suas funções acedem.Also, choose a Location in a region near you or near other services your functions access. Quando executa um plano diferente de Consumo, deve gerir o dimensionamento da sua aplicação de funções.When you run in a plan other than Consumption, you must manage the scaling of your function app.
    Armazenamento do Microsoft AzureAzure Storage Conta de armazenamento de uso geralGeneral-purpose storage account O runtime das Funções precisa de uma conta de armazenamento do Azure.An Azure storage account is required by the Functions runtime. Selecione novo para criar uma conta de armazenamento de uso geral.Select New to create a general-purpose storage account. Também pode utilizar uma conta existente que cumpra os requisitos de 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 o código do 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. Quando a implementação estiver concluída, aponte o valor URL do Site, que é o endereço da sua aplicação de função 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.

    Mensagem de publicação bem-sucedida

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

  1. Copie a URL de base da aplicação de funções a partir da página de perfil Publicar.Copy the base URL of the function app from the Publish profile page. Substitua a localhost:port parte da URL que utilizou ao testar a localmente a função com a nova URL de base.Replace the localhost:port portion of the URL you used when testing the function locally with the new base URL. Tal como antes, certifique-se de que anexa a cadeia de consulta ?name=<YOUR_NAME> a este URL e execute o pedido.As before, make sure to append the query string ?name=<YOUR_NAME> to this URL and execute the request.

    O URL que chama a função de acionada por HTTP deve estar 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 este novo URL do pedido HTTP na barra de endereço do browser.Paste this new URL for the HTTP request into your browser's address bar. A imagem seguinte mostra a resposta no browser em relação ao pedido GET devolvido 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 browser

Passos seguintesNext steps

Você usou o Visual Studio para criar e publicar um C# aplicativo de funções no Azure com uma simples função disparada por http.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, confira C# Azure Functions referência do desenvolvedor.To learn more about developing functions as .NET class libraries, see Azure Functions C# developer reference.