Início Rápido: Criar a sua primeira função C# no Azure com o Visual Studio

Funções do Azure permite-lhe utilizar o Visual Studio para criar projetos de funções C# locais e, em seguida, publicar facilmente este projeto para ser executado num ambiente dimensionável sem servidor no Azure. Se preferir desenvolver as suas aplicações C# localmente com o Visual Studio Code, deve considerar a versão baseada no Visual Studio Code deste artigo.

Por predefinição, este artigo mostra-lhe como criar funções C# que são executadas no .NET 6 no mesmo processo que o anfitrião das Funções. Estas funções C# no processo só são suportadas em versões .NET de Suporte de Longo Prazo (LTS), como .NET 6. Ao criar o seu projeto, pode optar por criar uma função que é executada no .NET 6 num processo de trabalho isolado. O processo de trabalho isolado suporta versões LTS e Suporte de Termos Standard (STS) do .NET. Para obter mais informações, veja Versões suportadas no guia do processo de trabalho isolado das Funções .NET.

Neste artigo, vai aprender a:

  • Utilize o Visual Studio para criar um projeto de biblioteca de classeS C#.
  • Crie uma função que responda a pedidos HTTP.
  • Execute o código localmente para verificar o comportamento da função.
  • Implemente o projeto de código para Funções do Azure.

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

Pré-requisitos

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

O modelo de projeto Funções do Azure no Visual Studio cria um projeto de biblioteca de classes C# que pode publicar numa aplicação de funções no Azure. Pode utilizar uma aplicação de funções para agrupar funções como uma unidade lógica para facilitar a gestão, implementação, dimensionamento e partilha de recursos.

  1. No menu do Visual Studio, selecione Ficheiro>Novo>Projeto.

  2. Em Criar um novo projeto, introduza funções na caixa de pesquisa, selecione o modelo Funções do Azure e, em seguida, selecione Seguinte.

  3. Em Configurar o novo projeto, introduza um Nome do projeto para o seu projeto e, em seguida, selecione Seguinte. 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. Em Informações adicionais , escolha entre uma das seguintes opções para a função de trabalho de Funções:

    Opção Versão do .NET Modelo dos processos Description
    .NET 6.0 (Suporte a Longo Prazo) .NET 6 Em processo Em processo As funções C# só são suportadas em versões .NET de Suporte de Longo Prazo (LTS ). O código de função é executado no mesmo processo que o anfitrião de Funções.
    .NET 6.0 Isolado (Suporte a Longo Prazo) .NET 6 Processo de trabalho isolado As funções são executadas no .NET 6, mas num processo separado do anfitrião de Funções.
    .NET 7.0 Isolado .NET 7 Processo de trabalho isolado Uma vez que o .NET 7 não é uma versão LTS do .NET, as suas funções têm de ser executadas num processo isolado no .NET 7.
    .NET Framework Isolado v4 .NET Framework 4.8 Processo de trabalho isolado Escolha esta opção quando as suas funções precisarem de utilizar bibliotecas apenas suportadas no .NET Framework.
    .NET Core 3.1 (Suporte a Longo Prazo) .NET Core 3.1 Em processo O .NET Core 3.1 já não é uma versão suportada do .NET e não é suportado pela versão 4.x das Funções. Em vez disso, utilize o .NET 6.0.
    .NET Framework v1 .NET Framework Em processo Escolha esta opção quando as suas funções precisarem de utilizar bibliotecas apenas suportadas em versões mais antigas do .NET Framework. Requer a versão 1.x do runtime das Funções.

    Os dois modelos de processo utilizam APIs diferentes e cada modelo de processo utiliza um modelo diferente ao gerar o código do projeto de função. Se não vir opções para o .NET 6.0 e versões posteriores do runtime do .NET, poderá ter de atualizar a instalação das ferramentas de Funções do Azure.

  5. Para as restantes Definições de informações adicionais , utilize os valores na tabela seguinte:

    Definição Valor Descrição
    Function Acionador HTTP Este valor cria uma função acionada por um pedido HTTP.
    Utilizar o Azurite para a conta de armazenamento de runtime (AzureWebJobsStorage) Ativar Uma vez que uma aplicação de funções no Azure necessita de uma conta de armazenamento, uma é atribuída ou criada quando publica o projeto no Azure. Um acionador HTTP não utiliza uma cadeia de ligação da conta de Armazenamento do Azure; todos os outros tipos de acionadores requerem uma cadeia de ligação da conta de Armazenamento do Azure válida. Quando seleciona esta opção, é utilizado o emulador Azurite .
    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, veja Chaves de autorização e enlaces HTTP e webhook.

    Captura de ecrã a mostrar Funções do Azure definições do projeto.

    Certifique-se de que define o nível de Autorização como Anónimo. Se escolher o nível predefinido da Função, terá de apresentar a chave de função nos pedidos para aceder ao ponto final da função no Azure.

  6. Selecione Criar para criar o projeto de função e a função de acionador HTTP.

O Visual Studio cria um projeto e uma classe que contêm código boilerplate para o tipo de função de acionador 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 um pedido HTTP.

Mudar o nome da função

O FunctionName atributo de método define o nome da função, que por predefinição é gerada como Function1. Uma vez que as ferramentas não lhe permitem substituir o nome da função predefinida ao criar o projeto, dedquira um minuto para criar um nome melhor para a classe de funções, ficheiro e metadados.

  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, mude o nome da classe Function1 para HttpExample.

  3. HttpTrigger No método denominado Run, mude o nome do atributo do FunctionName método para HttpExample.

A definição da função deverá ter o seguinte aspeto:

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

Agora que mudou o nome da função, pode testá-la no seu computador local.

Executar a função localmente

O Visual Studio integra-se no Funções do Azure Core Tools para que possa testar as suas funções localmente com o runtime completo Funções do Azure.

  1. Para executar a função, prima F5 no Visual Studio. Poderá ter de ativar uma exceção de firewall para que as ferramentas possam processar pedidos HTTP. Os níveis de autorização nunca são impostos quando 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.

    Tempo de execução local do Azure

  3. Cole o URL do pedido HTTP na barra de endereço do browser. Acrescente a cadeia de ?name=<YOUR_NAME> consulta a este URL e execute o pedido. A imagem seguinte mostra a resposta no browser ao pedido GET local devolvido pela função:

    Resposta da função localhost no browser

  4. Para parar a depuração, prima 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 o seu projeto local no Azure. Antes de poder publicar o projeto, tem de ter uma aplicação de funções na sua subscrição do Azure. Se ainda não tiver uma aplicação de funções no Azure, a publicação do Visual Studio cria uma para si quando publicar o seu projeto pela primeira vez. Neste artigo, vai criar uma aplicação de funções e recursos do Azure relacionados.

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

    Captura de ecrã a mostrar a janela de publicação.

  2. Selecione Aplicação de Funções do Azure (Windows) para o destino Específico, que cria uma aplicação de funções que é executada no Windows e, em seguida, selecione Seguinte.

    Captura de ecrã a mostrar a janela de publicação com um destino específico.

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

    Captura de ecrã a mostrar a criação de uma nova instância da aplicação de funções.

  4. Crie uma nova instância com os valores especificados na tabela seguinte:

    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 carateres válidos são: a-z, 0-9e -.
    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 pretende criar a sua aplicação de funções. Selecione um grupo de recursos existente na lista pendente ou selecione Novo para criar um novo grupo de recursos.
    Tipo de Plano Consumo Quando publica o seu projeto numa aplicação de funções que é executada num plano de Consumo, paga apenas pelas execuções da sua aplicação de funções. Outros planos de alojamento incorrem em custos mais elevados.
    Localização Localização do serviço de aplicações Escolha uma Localização numa região perto de si ou de outros serviços aos quais as suas funções acedem.
    Armazenamento do Azure Conta de armazenamento para fins gerais O runtime das Funções precisa de uma conta de armazenamento do Azure. Selecione Novo para configurar uma conta de armazenamento para fins gerais. Também pode escolher uma conta existente que cumpra os requisitos da conta de armazenamento.

    Captura de ecrã a mostrar a caixa de diálogo Criar Serviço de Aplicações.

  5. Selecione Criar para criar uma aplicação de funções e os respetivos recursos relacionados no Azure. O estado da criação de recursos é apresentado no canto inferior esquerdo da janela.

  6. Na instância das Funções, certifique-se de que a opção Executar a partir do ficheiro de pacote está selecionada. A sua aplicação de funções é implementada com a Implementação Zip com o modo Run-From-Package ativado. A Implementação Zip é o método de implementação recomendado para o projeto de funções, o que resulta num melhor desempenho.

    Captura de ecrã a mostrar a criação de perfis de conclusão.

  7. Selecione Concluir e, na página Publicar, selecione Publicar para implementar o pacote que contém os ficheiros do projeto na sua nova aplicação de funções no Azure.

    Após a conclusão da implementação, o URL de raiz da aplicação de funções no Azure é apresentado no separador Publicar .

  8. No separador Publicar, na secção Alojamento, selecione Abrir no portal do Azure. Esta ação abre o novo recurso do Azure da aplicação de funções no portal do Azure.

    Captura de ecrã da mensagem Publicar êxito.

Verificar a sua função no Azure

  1. No Cloud Explorer, a nova aplicação de funções deve ser selecionada. Caso contrário, expanda os Serviços de Aplicações da subscrição > e selecione a sua nova aplicação de funções.

  2. Clique com o botão direito do rato na aplicação de funções e selecione Abrir no Browser. Esta ação abre a raiz da sua aplicação de funções no browser predefinido e apresenta a página que indica que a sua aplicação de funções está em execução.

    Aplicação de funções em execução

  3. Na barra de endereço no browser, acrescente a cadeia /api/HttpExample?name=Functions ao URL base e execute o pedido.

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

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

  4. Aceda a este URL e verá uma resposta no browser ao pedido GET remoto devolvido pela função, que se assemelha ao seguinte exemplo:

    Resposta da função no browser

Limpar os recursos

Os recursos no Azure referem-se a aplicações de funções, funções, contas de armazenamento e assim sucessivamente. Estão agrupados em grupos de recursos e pode eliminar tudo num grupo ao eliminar o grupo.

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 planeia trabalhar com inícios rápidos, tutoriais ou com qualquer um dos serviços que criou neste início rápido, não limpe os recursos.

Utilize os seguintes passos para eliminar a aplicação de funções e os respetivos recursos relacionados para evitar incorrer em custos adicionais.

  1. No diálogo Publicar do Visual Studio, na secção Alojamento, selecione Abrir no portal do Azure.

  2. Na página da aplicação de funções, selecione o separador Descrição geral e, em seguida, selecione a ligação em Grupo de recursos.

    Selecione o grupo de recursos a eliminar da página da aplicação de funções

  3. Na página Grupo de recursos, reveja a lista de recursos incluídos e verifique se são os que pretende eliminar.

  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.

Passos seguintes

Neste início rápido, utilizou o Visual Studio para criar e publicar uma aplicação de funções C# no Azure com uma função de acionador HTTP simples.

O artigo seguinte depende do modelo de processo escolhido.

Para saber mais sobre como trabalhar com funções C# que são executadas em processo com o anfitrião de Funções, veja Desenvolver funções de biblioteca de classeS C# com Funções do Azure.

Avance para o artigo seguinte para saber como adicionar um enlace de fila do Armazenamento do Azure à sua função: