Usar o Java e o Gradle para criar e publicar uma função no Azure

Este artigo mostra como criar e publicar um projeto de função Java no Azure Functions com a ferramenta de linha de comando Gradle. Quando você terminar, o código de função será executado no Azure em um plano de hospedagem sem servidor e será disparado por uma solicitação HTTP.

Observação

Se o Gradle não for sua ferramenta de desenvolvimento preferida, confira nossos tutoriais semelhantes para desenvolvedores Java usando Maven, IntelliJ IDEA e VS Code.

Pré-requisitos

Para desenvolver funções usando Java, você deve ter o seguinte instalado:

Você também precisará de uma assinatura ativa do Azure. Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.

Importante

A variável de ambiente JAVA_HOME deve ser definida como o local de instalação do JDK para concluir este guia de início rápido.

Preparar um projeto do Functions

Use o seguinte comando para clonar o projeto de exemplo:

git clone https://github.com/Azure-Samples/azure-functions-samples-java.git
cd azure-functions-samples-java/

Abra build.gradle e altere o appName na seção a seguir para um nome exclusivo, a fim de evitar conflito de nome de domínio durante a implantação no Azure.

azurefunctions {
    resourceGroup = 'java-functions-group'
    appName = 'azure-functions-sample-demo'
    pricingTier = 'Consumption'
    region = 'westus'
    runtime {
      os = 'windows'
    }
    localDebug = "transport=dt_socket,server=y,suspend=n,address=5005"
}

Abra o novo arquivo Function.java do caminho src/main/java em um editor de texto e examine o código gerado. Esse código é uma função disparada por HTTP que ecoa o corpo da solicitação.

Executar a função localmente

Execute o seguinte comando para compilar e, em seguida, executar o projeto de função:

gradle jar --info
gradle azureFunctionsRun

Você verá uma saída semelhante à seguinte no Azure Functions Core Tools quando executar o projeto localmente:

...

Now listening on: http://0.0.0.0:7071
Application started. Press Ctrl+C to shut down.

Http Functions:

    HttpExample: [GET,POST] http://localhost:7071/api/HttpExample
...

Acione a função na linha de comando usando o seguinte comando cURL em uma nova janela de terminal:

curl -w "\n" http://localhost:7071/api/HttpExample --data AzureFunctions

A saída esperada é a seguinte:

Hello, AzureFunctions

Observação

Se você definir authLevel como FUNCTION ou ADMIN, a tecla de função não será necessária ao executar localmente.

Use Ctrl+C no terminal para interromper o código da função.

Implantar a função no Azure

Um aplicativo de funções e os recursos relacionados são criados no Azure quando você implanta o aplicativo de funções pela primeira vez. Para fazer a implantação, use o comando az login da CLI do Azure para entrar em sua assinatura do Azure.

az login

Dica

Caso a sua conta possa acessar várias assinaturas, use az account set para definir a assinatura padrão para essa sessão.

Use o comando a seguir para implantar o projeto em um novo aplicativo de funções.

gradle azureFunctionsDeploy

Isso cria os seguintes recursos no Azure, com base nos valores no arquivo build.gradle:

  • Grupo de recursos. Nomeado com o resourceGroup fornecido.
  • Conta de armazenamento. Necessária para o Functions. O nome é gerado aleatoriamente de acordo com os requisitos de nome da conta de armazenamento.
  • Plano do Serviço de Aplicativo. Hospedagem de plano de consumo sem servidor para seu aplicativo de funções na region especificada. O nome é gerado aleatoriamente.
  • Aplicativo de funções. Um aplicativo de funções é a unidade de implantação e execução para suas funções. O nome é o appName, acrescentado a um número gerado aleatoriamente.

A implantação também empacota os arquivos de projeto e implanta-os no novo aplicativo de funções usando zip deployment, com o modo run-from-package habilitado.

O authLevel para gatilho de HTTP no projeto de amostra é ANONYMOUS, que irá ignorar a autenticação. No entanto, se você usar outros authLevel como FUNCTION ou ADMIN, será necessário obter a chave de função para chamar o ponto de extremidade da função por http. A maneira mais fácil de obter a chave de função é no portal do Azure.

Obter a URL do gatilho HTTP

Obtenha a URL necessária para disparar a função, com a chave de função, no portal do Azure.

  1. Navegue até o portal do Azure, entre nele, digite o appName do aplicativo de funções em Pesquisar na parte superior da página e pressione Enter.

  2. Em seu aplicativo de funções, selecione Funções, escolha sua função e clique em Obter Url da Função no canto superior direito.

    Copy the function URL from the Azure portal

  3. Escolha padrão (Chave de função) e selecione Copiar.

Agora você pode usar a URL copiada para acessar a função.

Verificar a função no Azure

Para verificar o aplicativo de funções em execução no Azure usando cURL, substitua a URL da amostra abaixo pela URL copiada do portal.

curl -w "\n" http://azure-functions-sample-demo.azurewebsites.net/api/HttpExample --data AzureFunctions

Isso envia uma solicitação POST ao ponto de extremidade da função com AzureFunctions no corpo da solicitação. Você verá a resposta a seguir.

Hello, AzureFunctions

Próximas etapas

Você criou um projeto de funções Java com uma função disparada por HTTP, executou-o no computador local e implantou-o no Azure. Agora, estenda sua função por meio da...