Início Rápido: criar sua primeira função C# no Azure usando o Visual Studio
O Azure Functions permite que você use o Visual Studio para criar projetos locais de função C# e, em seguida, publicar facilmente esse projeto para ser executado em um ambiente escalonável sem servidor no Azure. Se você preferir desenvolver seus aplicativos C# localmente usando o Visual Studio Code, considere a Versão baseada no Visual Studio Code deste artigo.
Por padrão, este artigo mostra como criar funções C# que são executadas no .NET 6 no mesmo processo que o host do Functions. Só há suporte para essas funções C# em processo em versões LTS (suporte a longo prazo) do .NET, como o .NET 6. Ao criar seu projeto, você pode optar por criar uma função que é executada no .NET 6 em um processo de trabalho isolado. O processo de trabalho isolado dá suporte a versões LTS e STS (suporte a termos padrão) do .NET. Para obter mais informações, confira Versões com suporte no guia de processo de trabalho isolado das funções do .NET.
Neste artigo, você aprenderá como:
- Use o Visual Studio para criar um projeto de biblioteca de classes do C#.
- 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.
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.
Pré-requisitos
Visual Studio 2022. Selecione a carga de trabalho de desenvolvimento do Azure durante a instalação.
Assinatura do Azure. Se você ainda não tiver uma conta, crie uma gratuita antes de começar.
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.
No menu do Visual Studio, selecione Arquivo>Novo>Projeto.
Em Criar um projeto, insira funções na caixa de pesquisa, escolha o modelo Azure Functions e, em seguida, selecione Próximo.
Em Configurar o novo projeto, insira um Nome do projeto e clique em 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.
Em Informações adicionais, escolha uma das seguintes opções para Trabalho do Functions:
Opção Versão do .NET Modelo de processo Descrição .NET 6.0 (suporte de longo prazo) .NET 6 Em processo Só há suporte para essas funções C# em processo em versões do .NET LTS (suporte de longo prazo). O código da função é executado no mesmo processo que o processo do host do Functions. .NET 6.0 Isolado (suporte de longo prazo) .NET 6 Processo de trabalho isolado As funções são executadas no .NET 6, mas em um processo separado do host do Functions. .NET 7.0 Isolado .NET 7 Processo de trabalho isolado Como o .NET 7 não é uma versão LTS do .NET, as funções precisam ser executadas em um processo isolado no .NET 7. .NET Framework Isolado v4 .NET Framework 4.8 Processo de trabalho isolado Escolha essa opção quando as funções precisarem usar bibliotecas com suporte apenas no .NET Framework. .NET Core 3.1 (suporte de longo prazo) .NET Core 3.1 Em processo O .NET Core 3.1 não é mais uma versão com suporte do .NET e não é compatível com o Functions versão 4.x. Use o .NET 6.0. .NET Framework v1 .NET Framework Em processo Escolha essa opção quando as funções precisarem usar bibliotecas com suporte apenas nas versões mais antigas do .NET Framework. Requer a versão 1.x do Functions Runtime. Os dois modelos de processo usam APIs diferentes e cada modelo de processo usa um modelo diferente ao gerar o código do projeto de função. Se você aparecerem opções para o .NET 6.0 e versões posteriores do runtime do .NET, poderá ser necessário atualizar a instalação das ferramentas do Azure Functions.
Para as configurações de Informações adicionais restantes, use os valores na seguinte tabela:
Configuração Valor Descrição Função Gatilho HTTP Esse valor cria uma função acionada por uma solicitação HTTP. Usar Azurite para runtime de conta de armazenamento (AzureWebJobsStorage) Habilitar 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. 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 apresentar a chave da função nas solicitações para acessar o ponto de extremidade da função no Azure.
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.
No Explorador de Arquivos, clique com o botão direito do mouse no arquivo Function1.cs e renomeie-o como
HttpExample.cs
.No código, renomeie a classe Function1 como
HttpExample
.No método
HttpTrigger
chamadoRun
, renomeie o atributo do métodoFunctionName
comoHttpExample
.
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.
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.
Copie a URL da sua função da saída do Azure Functions runtime.
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: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
O Visual Studio pode publicar seu projeto local no Azure. Antes de publicar o projeto, você deve ter um aplicativo de funções em sua assinatura do Azure. Se você ainda não tiver um aplicativo de funções 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ções e os recursos do Azure relacionados.
No Gerenciador de Soluções, clique com o botão direito do mouse no nome do projeto e selecione Publicar. Em Destino, selecione Azure e Avançar.
Escolha Aplicativo de Funções do Azure (Windows) em Destino específico, o que criará um aplicativo de funções executado no Windows, e selecione Avançar.
Em Instância de Função, escolha Criar uma Função do Azure…
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 você deseja criar o 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 de 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. Selecione Criar para criar um aplicativo de funções e recursos relacionados no Azure. O status da criação do recurso é mostrado no canto inferior esquerdo da janela.
Na Instância do Functions, verifique se a opção Executar no arquivo de pacote está marcada. Seu aplicativo de funções é implantado usando a Implantação de Zip com o modo Run-From-Package habilitado. A Implantação de Zip é o método de implantação recomendado para seu projeto de funções, pois ele resulta em um melhor desempenho.
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.
Concluída a implantação, a URL raiz do aplicativo de funções no Azure é mostrada na guia Publicar.
Na guia Publicar, na seção Hospedagem, escolha Abrir no portal do Azure. O novo recurso de aplicativo de funções do Azure é aberto no portal do Azure.
Verificar sua função no Azure
No Cloud Explorer, seu novo aplicativo de funções deve estar selecionado. Caso contrário, expanda sua assinatura >Serviços de Aplicativos e selecione o novo aplicativo de funções.
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.
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
Vá para essa URL e você verá uma resposta no navegador à solicitação GET remota retornada pela função, que é semelhante ao seguinte exemplo:
Limpar 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 do Azure para concluir este início rápido. Você pode ser cobrado por esses recursos, dependendo do status de conta e preços do serviço. 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.
Siga as etapas a seguir para excluir o aplicativo de funções e os recursos relacionados a ele a fim de evitar custos adicionais.
No diálogo do Visual Studio Publish, na seção Hospedagem, selecione Abrir no portal do Azure.
Na página do aplicativo de funções, selecione a guia Visão geral e depois selecione o link em Grupo de recursos.
Na página Grupo de recursos, examine a lista de recursos incluídos e verifique se eles são aqueles que deseja excluir.
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.
O próximo artigo depende do modelo de processo escolhido.
Para saber mais sobre como trabalhar com funções C# executadas em processo com o host do Functions, consulte Desenvolver funções de biblioteca de classes C# usando o Azure Functions.
Avance para o próximo artigo para saber como adicionar uma associação de fila do Armazenamento do Azure à sua função: