Executar e testar a função do Azure localmente

Concluído

No exercício anterior, você criou um projeto de função do Azure usando um arquétipo Maven do Azure. Sua próxima tarefa é criar sua função e executá-la localmente para verificar se ela funciona.

Nesta unidade, você aprenderá sobre o Azure Functions Core Tools, que ajuda você a executar e testar suas funções localmente. Você também aprenderá a abrir uma porta HTTP para teste, como executar sua função no Cloud Shell e como testar sua função em um navegador da Web.

Sobre o Azure Functions Core Tools

O Azure Functions Core Tools é um pacote de utilitários que nos ajuda a criar e testar funções do Azure localmente usando um emulador de terminal ou um prompt de comando. Embora as funções do Azure que você cria estejam executando localmente, elas podem acessar os serviços do Azure ao vivo durante os testes. Quando você concluir o teste e sua função estiver pronta para ser publicada, você poderá implantar seu aplicativo de funções em sua assinatura do Azure.

Neste momento, há três versões do Azure Functions Core Tools. No entanto, como regra geral, a menos que você tenha uma necessidade específica de usar uma versão anterior, você sempre deverá usar a versão mais recente quando estiver desenvolvendo funções para implantação no Azure. Para este módulo, você usará o Azure Cloud Shell na área restrita do Learn, que tem a versão mais recente do Azure Functions Core Tools.

Observação

Se você usou sua conta pessoal do Azure em vez do Cloud Shell na área restrita de aprendizagem, será necessário conferir Trabalhar com o Azure Functions Core Tools a fim de obter descrições, requisitos e instruções de instalação para as diferentes versões do Azure Functions Core Tools.

Configuração do ambiente do Cloud Shell para teste

Ao testar um aplicativo baseado na Web que é executado no Cloud Shell, você tem duas maneiras diferentes de testar o aplicativo:

  1. Você pode usar o Cloud Shell para abrir uma porta externa para teste, que roteia solicitações HTTP para a porta localhost da instância do Cloud Shell:

    • Para abrir a porta 7071 do Cloud Shell, use o seguinte comando cURL:

      curl -X POST http://localhost:8888/openPort/7071
      
    • Ao concluir o teste, use o seguinte comando cURL para fechar a porta:

      curl -X POST http://localhost:8888/closePort/7071
      
  2. Você pode abrir várias instâncias do Cloud Shell para testar o aplicativo localmente:

    • Execute o aplicativo na primeira instância.

    • Use o cURL para testar o aplicativo na segunda instância.

No próximo exercício, você usará o primeiro método para abrir uma porta.

Execução da sua função no Cloud Shell

Depois de abrir uma porta para teste, sua próxima tarefa é criar e executar sua função. Para fazer isso, execute as seguintes etapas:

  1. No Cloud Shell, altere o diretório para a pasta raiz do projeto.

  2. Para criar o seu aplicativo, use o seguinte comando do Maven:

    mvn clean package
    
  3. Para executar o aplicativo, use o seguinte comando do Maven:

    mvn azure-functions:run
    

    Enquanto o Maven prepara o ambiente de runtime para a sua função, você vê o logotipo do Azure Functions Core Tools exibido:

    Image showing the Azure Function Core tools logo.

  4. Depois de concluir o teste, use o comando CTRL+C do Azure Cloud Shell para interromper o servidor.

Testar sua função usando solicitações HTTP

Neste módulo, você usará uma única instância do Cloud Shell. Como resultado, você precisa testar o seu aplicativo abrindo uma nova guia no navegador da Web. Na barra de endereços do navegador, insira uma URL semelhante ao seguinte exemplo:

https://gateway.westus.console.azure.com/n/cc-12345678/cc-12345678/proxy/7071/api/HttpExample?name=Bob

No entanto, se você estiver usando várias instâncias do Cloud Shell, poderá usar o seguinte comando cURL para testar o seu aplicativo de uma instância separada do shell:

curl http://localhost:7071/api/HttpExample?name=Bob

No próximo exercício, você usará o que aprendeu nesta unidade. Abra uma porta de teste, execute sua função no Cloud Shell e determine a URL que você precisa usar para testar sua função em um navegador da Web.