Início Rápido: criar sua primeira função C# no Azure usando o Visual Studio

O Azure Functions permite executar o código do C# em um ambiente sem servidor no Azure.

Neste artigo, você aprenderá como:

  • Usar o Visual Studio para criar um projeto de biblioteca de classes do C# no .NET 6.0.
  • Criar uma função que responde a solicitações HTTP.
  • Execute o código localmente para verificar o comportamento da função.
  • Implante o projeto de código para o Azure Functions.

Este artigo dá suporte à criação dos dois tipos de funções C# compiladas:

Modelo de execução Descrição
Em processo Seu código de função é executado no mesmo processo que o processo de host do Functions. Compatível com .NET Core 3.1 e .NET 6.0. Para saber mais, confira Desenvolver funções da biblioteca de classes C# usando o Azure Functions.
Processo isolado O código de função é executado em um processo de trabalho do .NET separado. Compatível com .NET 5.0 e .NET 6.0. Para saber mais, consulte Desenvolver funções de processo isolado em C#.

A realização deste início rápido gera um pequeno custo de alguns centavos de dólar ou menos em sua conta do Azure.

Há também uma versão baseada no Visual Studio Code deste artigo.

Pré-requisitos

Crie um projeto de aplicativo de funções

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ções no Azure. Você pode usar um aplicativo de funções 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 do Visual Studio, selecione Arquivo > Novo > Projeto.

  2. Em Criar um projeto, insira funções na caixa de pesquisa, escolha o modelo Azure Functions e, em seguida, selecione Próximo.

  3. Em Configurar seu novo projeto, insira um Nome de projeto para seu projeto e, em seguida, selecione Criar. 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.

  4. Para as configurações de Criar um aplicativo do Azure Functions, use os valores da tabela a seguir:

    Configuração Valor Descrição
    Versão do .NET .NET 6 Esse valor cria um projeto de função que é executado em processo com a versão 4.x do Azure Functions Runtime. Você também pode escolher o .NET 6 (isolado) para criar um projeto que seja executado em um processo de trabalho separado. O Azure Functions 1.x dá suporte ao .NET Framework. Para obter mais informações, consulte Visão geral de versões do Azure Functions runtime.
    Modelo de função Gatilho HTTP Esse valor cria uma função acionada por uma solicitação HTTP.
    Conta de armazenamento (AzureWebJobsStorage) Emulador de armazenamento Como um aplicativo de funções no Azure requer uma conta de armazenamento, ela será atribuída ou criada quando você publicar seu projeto no Azure. Um gatilho HTTP não usa uma cadeia de conexão da conta do Armazenamento do Azure; todos os outros tipos de gatilho exigem uma cadeia de conexão válida da conta do Armazenamento do Azure. 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. Essa configuração de autorização torna fácil testar a nova função. Para obter mais informações sobre chaves e autorização, consulte Chaves de autorização e associações HTTP e webhook.

    Configurações do projeto do Azure Functions

    Verifique se você definiu o Nível de autorização como Anônimo. Se você escolher o nível padrão da Função, será necessário que você apresente a chave da função em solicitações para acessar seu ponto de extremidade da função.

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

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

Renomear a função

O atributo do método FunctionName define o nome da função, que por padrão é gerado como Function1. Como as ferramentas não permitem que você substitua o nome padrão da função quando cria seu projeto, dedique um minuto a criar um nome melhor para a classe da função, o arquivo e os metadados.

  1. No Explorador de Arquivos, clique com o botão direito do mouse no arquivo Function1.cs e renomeie-o como HttpExample.cs.

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

  3. No método HttpTrigger chamado Run, renomeie o atributo do método FunctionName como HttpExample.

A definição da função agora deverá ser semelhante ao seguinte código:

[FunctionName("HttpExample")]
public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
    ILogger log)

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

Executar a função localmente

O Visual Studio integra-se ao Azure Functions Core Tools para que você possa testar suas funções localmente usando o runtime 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 manipular solicitações HTTP. Os níveis de autorização nunca são impostos quando você executa uma função localmente.

  2. Copie a URL da sua função da saída do Azure Functions runtime.

    runtime local do Azure

  3. Cole a URL para a solicitação HTTP na barra de endereços do navegador. Acrescente o valor de cadeia de consulta ?name=<YOUR_NAME> a essa URL e execute a solicitação. A imagem a seguir mostra a resposta no navegador para a solicitação GET local retornada pela função:

    Resposta da função localhost no navegador

  4. Pare a depuração pressionando Shift+F5 no Visual Studio.

Após verificar se a função foi executada corretamente no computador local, é hora de publicar o projeto no Azure.

Publicar o projeto no Azure

Antes de publicar o projeto, você deve ter um aplicativo de funções em sua assinatura do Azure. A publicação do Visual Studio cria um aplicativo de funções para você na primeira vez que você publica seu projeto.

  1. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto e selecione Publicar. Depois, em Destino, selecione Azure e Avançar.

  2. Para o Destino específico, escolha o Aplicativo de Funções do Azure (Windows) , que cria um aplicativo de funções executado no Windows.

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

    Criar uma instância de aplicativo de funções

  4. Crie uma instância usando os valores especificados nesta tabela:

    Configuração Valor Descrição
    Nome Nome globalmente exclusivo Nome que identifica seu novo aplicativo de funções de forma exclusiva. Aceite esse nome ou insira um novo nome. Os caracteres válidos são: a-z, 0-9 e -.
    Assinatura Sua assinatura A assinatura do Azure a utilizar. Aceite esta assinatura ou selecione uma nova na lista suspensa.
    Grupo de recursos Nome do seu grupo de recursos O grupo de recursos no qual criar o seu aplicativo de funções. Selecione um grupo de recursos existente na lista suspensa ou escolha Novo para criar um grupo de recursos.
    Tipo de Plano Consumo 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. Outros planos de hospedagem incorrem em custos mais altos.
    Localidade Local do serviço de aplicativo Escolha um Local em uma região perto de você ou de outros serviços acessados pelas suas funções.
    Armazenamento do Azure Conta de armazenamento para uso geral Uma conta do Armazenamento do Azure é requerida pelo runtime do Functions. Selecione Novo para configurar uma conta de armazenamento para uso geral. Você também pode escolher uma conta existente que atenda aos requisitos da conta de armazenamento.

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

  5. Selecione Criar para criar um aplicativo de funções e recursos relacionados no Azure. O status da criação do recurso é mostrado na parte inferior esquerda da janela.

  6. Na Instância do Functions, verifique se Executar no arquivo do pacote está marcado. Seu aplicativo de funções é implantado usando a Implantação de Zip com o modo Run-From-Package habilitado. Esse é o método de implantação recomendado para o seu projeto do Functions, pois ele resulta em um melhor desempenho.

    Concluir a criação do perfil

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

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

  8. Na guia Publicar, escolha Gerenciar no Cloud Explorer. Isso abre o novo recurso do Azure do aplicativo de funções no Cloud Explorer.

    Publicar mensagem de êxito

    O Cloud Explorer permite que você use o Visual Studio para exibir o conteúdo do site, iniciar e parar o aplicativo de funções e navegar diretamente para recursos do aplicativo de funções no Azure e no portal do Azure.

Verificar sua função no Azure

  1. No Cloud Explorer, seu novo aplicativo de funções deve estar selecionado. Caso contrário, expanda sua assinatura > Serviços de Aplicativos e selecione seu novo aplicativo de funções.

  2. Clique com o botão direito do mouse no aplicativo de funções e escolha Abrir no navegador. Isso abre a raiz do aplicativo de funções no navegador da Web padrão e exibe a página que indica que o aplicativo de funções está em execução.

    Aplicativo de funções em execução

  3. Na barra de endereços no navegador, acrescente a cadeia de caracteres /api/HttpExample?name=Functions à URL base e execute a solicitação.

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

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

  4. Vá para essa URL e você verá uma resposta no navegador à solicitação GET remota retornada pela função, que é semelhante ao seguinte exemplo:

    Resposta da função no navegador

Limpar os recursos

Outros inícios rápidos nessa coleção aproveitam esse início rápido. Se você planeja trabalhar com guias de início rápido subsequentes, tutoriais ou com qualquer serviço criado por você nesse início rápido, não limpe os recursos.

Os Recursos no Azure se referem a aplicativos de funções, funções, contas de armazenamento e assim por diante. Eles são agrupados em grupos de recursos e você pode excluir tudo junto ao excluir o grupo.

Você criou recursos para concluir esses guias de início rápido. Você pode ser cobrado por esses recursos, dependendo do status de conta e preços do serviço.

Siga as etapas a seguir para excluir o aplicativo de funções e os recursos relacionados a ele a fim de evitar custos adicionais.

  1. No Cloud Explorer, expanda sua assinatura > Serviços de Aplicativos, clique com o botão direito do mouse no aplicativo de funções e escolha Abrir no Portal.

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

    Selecione o grupo de recursos a ser excluído da página do aplicativo de funções

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

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

    A exclusão poderá levar alguns minutos. Ao ser concluída, uma notificação será exibida por alguns segundos. Também é possível selecionar o ícone de sino na parte superior da página para exibir a notificação.

Próximas etapas

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

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