Guia de início rápido: crie sua primeira função C# no Azure usando o Visual Studio

O Azure Functions permite que você use o Visual Studio para criar projetos de função C# locais e, em seguida, publique facilmente esse projeto para ser executado em um ambiente sem servidor escalável no Azure. Se você preferir desenvolver seus aplicativos C# localmente usando o Visual Studio Code, você deve considerar a versão baseada em código do Visual Studio deste artigo.

Por padrão, este artigo mostra como criar funções C# que são executadas no .NET 8 em um processo de trabalho isolado. Os aplicativos de função executados em um processo de trabalho isolado são suportados em todas as versões do .NET suportadas pelo Functions. Para obter mais informações, consulte Versões suportadas.

Neste artigo, vai aprender a:

  • Use o Visual Studio para criar um projeto de biblioteca de classes C#.
  • Crie uma função que responda a solicitações HTTP.
  • Execute o código localmente para verificar o comportamento da função.
  • Implante seu projeto de código no Azure Functions.

A conclusão deste início rápido incorre num pequeno custo de alguns cêntimos USD ou menos na sua conta do Azure.

Este vídeo mostra como criar uma função C# no Azure.

As etapas no vídeo também são descritas nas seções a seguir.

Pré-requisitos

Criar um projeto de aplicação de função

O modelo de projeto do Azure Functions no Visual Studio cria um projeto de biblioteca de classes C# que você pode publicar em um aplicativo de função no Azure. Você pode usar um aplicativo de função para agrupar funções como uma unidade lógica para facilitar o gerenciamento, a implantação, o dimensionamento e o compartilhamento de recursos.

  1. No menu Visual Studio, selecione Arquivo>Novo>Projeto.

  2. Em Criar um novo projeto, insira funções na caixa de pesquisa, escolha o modelo Azure Functions e selecione Avançar.

  3. Em Configurar seu novo projeto, insira um nome de projeto para seu projeto e selecione Avançar. 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.

  4. Para as restantes definições de informações adicionais,

    Definição valor Description
    Funções de trabalhador .NET 8.0 isolado (suporte de longo prazo) Suas funções são executadas no .NET 8 em um processo de trabalho isolado.
    Função Acionador HTTP Esse valor cria uma função acionada por uma solicitação HTTP.
    Usar o Azurite para a conta de armazenamento em tempo de execução (AzureWebJobsStorage) Ativar Como um aplicativo de função no Azure requer uma conta de armazenamento, uma é atribuída ou criada quando você publica seu projeto no Azure. Um gatilho HTTP não usa uma cadeia de conexão de conta de Armazenamento do Azure; todos os outros tipos de gatilho exigem uma cadeia de conexão de conta de Armazenamento do Azure válida. Quando você seleciona essa opção, o emulador Azurite é usado.
    Nível de autorização Anônimo A função criada pode ser acionada por qualquer cliente sem fornecer uma chave. Esta definição de autorização torna mais fácil testar a função nova. Para obter mais informações sobre chaves e autorização, consulte Chaves de autorização e Ligações HTTP e webhook.

    Screenshot of Azure Functions project settings.

    Certifique-se de definir o nível de Autorização como Anônimo. Se você escolher o nível padrão de Função, será necessário apresentar a chave de função em solicitações para acessar seu ponto de extremidade de função no Azure.

  5. Selecione Criar para criar o projeto de função e a função de gatilho HTTP.

Visual Studio cria um projeto e classe que contém código clichê para o tipo de função de gatilho HTTP. O código automático envia uma resposta HTTP que inclui um valor da cadeia de consulta ou de corpo de pedido. O HttpTrigger atributo especifica que a função é acionada por uma solicitação HTTP.

Renomear a função

O Function atributo method define o nome da função, que por padrão é gerada como Function1. Como as ferramentas não permitem que você substitua o nome da função padrão ao criar seu projeto, reserve um minuto para criar um nome melhor para a classe, o arquivo e os metadados da função.

  1. No Explorador de Ficheiros, clique com o botão direito do rato no ficheiro Function1.cs e mude o nome para HttpExample.cs.

  2. No código, renomeie a classe Function1 para HttpExample.

  3. No método chamado Run, renomeie o Function atributo method para HttpExample.

Sua definição de função agora deve se parecer com o seguinte código:

[Function("HttpExample")]
public IActionResult Run([HttpTrigger(AuthorizationLevel.AuthLevelValue, "get", "post")] HttpRequest req)
{
    return new OkObjectResult("Welcome to Azure Functions!");
}

Agora que você renomeou a função, pode testá-la em seu computador local.

Executar a função localmente

O Visual Studio integra-se com as Ferramentas Principais do Azure Functions para que você possa testar suas funções localmente usando o tempo de execução completo do Azure Functions.

  1. Para executar sua função, pressione F5 no Visual Studio. Talvez seja necessário habilitar uma exceção de firewall para que as ferramentas possam lidar com solicitações HTTP. Os níveis de autorização nunca são impostos quando você executa uma função localmente.

  2. Copie o URL da sua função na saída do tempo de execução das funções do Azure.

    Azure local runtime

  3. Cole o URL da solicitação HTTP na barra de endereço do navegador e execute a solicitação. A imagem a seguir mostra a resposta no navegador para a solicitação GET local retornada pela função:

    Function localhost response in the browser

  4. Para parar a depuração, pressione Shift+F5 no Visual Studio.

Depois de verificar que a função é executada corretamente no computador local, deve publicar o projeto no Azure.

Publicar o projeto no Azure

O Visual Studio pode publicar seu projeto local no Azure. Antes de publicar seu projeto, você deve ter um aplicativo de função em sua assinatura do Azure. Se você ainda não tiver um aplicativo de função no Azure, a publicação do Visual Studio criará um para você na primeira vez que publicar seu projeto. Neste artigo, você cria um aplicativo de função e recursos relacionados do Azure.

  1. No Explorador de Soluções, clique com o botão direito do rato no projeto e selecione Publicar. Em Destino, selecione Azure e, em seguida, Avançar.

    Screenshot of publish window.

  2. Selecione Aplicativo de Função do Azure (Windows) para o destino Específico, que cria um aplicativo de função que é executado no Windows e, em seguida, selecione Avançar.

    Screenshot of publish window with specific target.

  3. Na Instância de Função, escolha Criar uma nova Função do Azure...

    Screenshot of create a new function app instance.

  4. Crie uma nova instância usando os valores especificados na tabela a seguir:

    Definição valor Descrição
    Nome Nome globalmente exclusivo Nome que identifica exclusivamente a sua nova aplicação de funções. Aceite este nome ou introduza um novo nome. Os caracteres válidos são: a-z, 0-9, e -.
    Subscrição a sua subscrição A subscrição do Azure que deve utilizar. Aceite esta subscrição ou selecione uma nova na lista pendente.
    Grupo de recursos Nome do grupo de recursos O grupo de recursos no qual você deseja criar seu aplicativo de função. Selecione Novo para criar um novo grupo de recursos. Você também pode escolher um grupo de recursos existente na lista suspensa.
    Tipo de Plano Consumo Quando você publica seu projeto em um aplicativo de função que é executado em um plano de consumo, você paga apenas pelas execuções do seu aplicativo de funções. Outros planos de hospedagem incorrem em custos mais altos.
    Location Localização do serviço da aplicação Escolha um local em uma região perto de você ou outros serviços que suas funções acessam.
    Armazenamento do Azure Conta de armazenamento de uso geral O runtime das Funções precisa de uma conta de armazenamento do Azure. Selecione Novo para configurar uma conta de armazenamento de uso geral. Você também pode escolher uma conta existente que atenda aos requisitos da conta de armazenamento.
    Application Insights Instância do Application Insights Você deve habilitar a integração do Application Insights para seu aplicativo de função. Selecione Novo para criar uma nova instância, em um espaço de trabalho novo ou existente do Log Analytics. Você também pode escolher uma instância existente.

    Screenshot of Create App Service dialog.

  5. Selecione Criar para criar um aplicativo de função e seus recursos relacionados no Azure. O status da criação de recursos é mostrado no canto inferior esquerdo da janela.

  6. Na instância Functions, verifique se a opção Executar do arquivo de pacote está marcada. Seu aplicativo de função é implantado usando o Zip Deploy com o modo Run-From-Package habilitado. Zip Deploy é o método de implantação recomendado para seu projeto de funções, resultando em melhor desempenho.

    Screenshot of Finish profile creation.

  7. Selecione Concluir e, na página Publicar, selecione Publicar para implantar o pacote que contém seus arquivos de projeto em seu novo aplicativo de função no Azure.

    Após a conclusão da implantação, a URL raiz do aplicativo de função no Azure é mostrada na guia Publicar .

  8. Na guia Publicar, na seção Hospedagem, escolha Abrir no portal do Azure. Isso abre o novo recurso do Azure do aplicativo de função no portal do Azure.

    Screenshot of Publish success message.

Verificar sua função no Azure

  1. No portal do Azure, você deve estar na página Visão geral do seu novo aplicativo de funções.

  2. Em Funções, selecione a nova função chamada HttpExample, em seguida, na página da função, selecione Obter URL da função e, em seguida, o ícone Copiar para a área de transferência.

  3. Na barra de endereço do navegador, cole o URL que você acabou de copiar e execute a solicitação.

    A URL que chama sua função de gatilho HTTP está no seguinte formato:

    https://<APP_NAME>.azurewebsites.net/api/HttpExample?name=Functions

  4. Vá para este URL e você verá uma resposta no navegador para a solicitação GET remota retornada pela função, que se parece com o exemplo a seguir:

    Function response in the browser

Clean up resources (Limpar recursos)

Os recursos no Azure referem-se a aplicações de funções, funções, contas de armazenamento e assim sucessivamente. Eles são agrupados em grupos de recursos e você pode excluir tudo em um grupo excluindo o grupo.

Você criou recursos do Azure para concluir este início rápido. Poderá ser-lhe cobrado estes recursos, dependendo do seu estado da conta e dos preços dos serviços. Outros guias de introdução desta coleção têm por base este guia de introdução. Se você planeja trabalhar com inícios rápidos, tutoriais ou com qualquer um dos serviços criados neste início rápido, não limpe os recursos.

Use as etapas a seguir para excluir o aplicativo de função e seus recursos relacionados para evitar incorrer em custos adicionais.

  1. Na caixa de diálogo Publicar do Visual Studio, na seção Hospedagem, selecione Abrir no portal do Azure.

  2. Na página do aplicativo de função, selecione a guia Visão geral e, em seguida, selecione o link em Grupo de recursos.

    Select the resource group to delete from the function app page

  3. Na página Grupo de recursos, revise a lista de recursos incluídos e verifique se eles são aqueles que você deseja excluir.

  4. Selecione Eliminar grupo de recursos e siga as instruções.

    A eliminação pode demorar alguns minutos. Quando terminar, é apresentada uma notificação durante alguns segundos. Também pode selecionar o ícone de sino na parte superior da página para ver a notificação.

Próximos passos

Neste início rápido, você usou o Visual Studio para criar e publicar um aplicativo de função C# no Azure com uma função de gatilho HTTP simples.

Para saber mais sobre como trabalhar com funções C# executadas em um processo de trabalho isolado, consulte o Guia para executar o C# Azure Functions em um processo de trabalho isolado. Confira as versões suportadas do .NET para ver outras versões das versões suportadas do .NET em um processo de trabalho isolado.

Avance para o próximo artigo para saber como adicionar uma associação de fila de Armazenamento do Azure à sua função: