Usar Java e 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 terminar, seu código de função é executado no Azure em um plano de hospedagem sem servidor e é acionado por uma solicitação HTTP.

Nota

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 com o Java, tem de ter o seguinte instalado:

Você também precisa de uma assinatura ativa do Azure. Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.

Importante

A variável de ambiente do JAVA_HOME tem de ser definida para a localização de instalação do JDK para concluir este guia de introdução.

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 a appName seção a seguir para um nome exclusivo para evitar conflitos de nomes de domínio ao implantar 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 a partir do caminho src/main/java em um editor de texto e revise o código gerado. Esse código é uma função acionada por HTTP que ecoa o corpo da solicitação.

Executar a função localmente

Execute o seguinte comando para construir e, em seguida, execute o projeto de função:

gradle jar --info
gradle azureFunctionsRun

Você vê saídas como as seguintes das Ferramentas Principais do Azure Functions quando executa 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 a partir da linha de comando usando o seguinte comando cURL em uma nova janela do terminal:

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

A saída esperada é a seguinte:

Hello, AzureFunctions

Nota

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

Utilize Ctrl+C no terminal para parar o código de função.

Implementar a função no Azure

Um aplicativo de função e recursos relacionados são criados no Azure quando você implanta seu aplicativo de função pela primeira vez. Antes de implantar, use o comando az login da CLI do Azure para entrar em sua assinatura do Azure.

az login

Gorjeta

Se sua conta puder acessar várias assinaturas, use az account set para definir a assinatura padrão para esta sessão.

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

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. Exigido por funções. O nome é gerado aleatoriamente com base nos requisitos de nome da conta de armazenamento.
  • Plano do Serviço de Aplicações. Hospedagem do plano de consumo sem servidor para seu aplicativo de função na região especificada. O nome é gerado aleatoriamente.
  • Aplicativo de função. Um aplicativo de função é a unidade de implantação e execução para suas funções. O nome é seu appName, anexado com um número gerado aleatoriamente.

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

O authLevel para HTTP Trigger no projeto de exemplo é ANONYMOUS, que ignorará a autenticação. No entanto, se você usar outro authLevel como FUNCTION ou ADMIN, você precisa obter a tecla 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 é a partir do portal do Azure.

Obter o URL do gatilho HTTP

Você pode obter a URL necessária para acionar sua função, com a chave de função, no portal do Azure.

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

  2. Na sua aplicação de funções, selecione Funções, escolha a sua função e, em seguida, clique em Obter URL da Função no canto superior direito.

    Copy the function URL from the Azure portal

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

Agora você pode usar o URL copiado para acessar sua função.

Verificar a função no Azure

Para verificar o aplicativo de função em execução no Azure usando cURLo , substitua a URL do exemplo abaixo pela URL que você copiou do portal.

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

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

Hello, AzureFunctions

Próximos passos

Criou um projeto de funções Java com uma função acionada por HTTP, executou-o na máquina local e implementou-o no Azure. Agora, pode expandir a função...

Adding an Azure Storage queue output binding (Adicionar um enlace de saída da fila de Armazenamento do Azure)