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

Este artigo mostra-lhe como construir e publicar um projeto de função Java para Funções do Azure com a ferramenta de linha de comando Gradle. Quando termina, o seu código de função funciona em Azure num plano de hospedagem sem servidor e é desencadeado por um pedido HTTP.

Nota

Se gradle não é a sua ferramenta de desenvolvimento preferencial, confira os 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:

Também precisa de uma subscrição ativa do Azure. Se não tiver uma subscrição do Azure, crie uma conta Azure gratuita 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 de Funções

Utilize o seguinte comando para clonar o projeto da amostra:

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

Abra build.gradle e altere a appName secção seguinte para um nome único para evitar conflitos de nomes de domínio ao ser implantado em 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 ficheiro .java Função a partir do caminho src/main/java num editor de texto e reveja o código gerado. Este código é uma função desencadeada HTTP que ecoa o corpo do pedido.

Executar a função localmente

Executar o seguinte comando para construir e executar o projeto de função:

gradle jar --info
gradle azureFunctionsRun

Você vê a saída como o seguinte de Funções do Azure Core Tools quando você 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
...

Desemocione a função a partir da linha de comando utilizando o seguinte comando cURL numa nova janela de terminal:

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

A saída prevista é a seguinte:

Hello, AzureFunctions

Nota

Se definir authLevel para FUNCTION ou ADMIN, a tecla de função não é necessária quando funciona localmente.

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

Implementar a função no Azure

Uma aplicação de função e recursos relacionados são criados em Azure quando implementa a sua aplicação de função pela primeira vez. Antes de poder implementar, utilize o comando Azure CLI do login para iniciar sessão na sua subscrição Azure.

az login

Dica

Se a sua conta puder aceder a várias subscrições, utilize a conta AZ definida para definir a subscrição padrão para esta sessão.

Utilize o seguinte comando para implementar o seu projeto numa nova aplicação de função.

gradle azureFunctionsDeploy

Isto cria os seguintes recursos em Azure, com base nos valores no ficheiro build.gradle:

  • Grupo de recursos. Nomeado com o grupo de recursos que forneceu.
  • Conta de armazenamento. Requerido por Funções. O nome é gerado aleatoriamente com base nos requisitos de nome da conta de armazenamento.
  • Serviço de Aplicações plano. Plano de consumo sem servidor hospedado para a sua aplicação de função na região especificada. O nome é gerado aleatoriamente.
  • App de função. Uma aplicação de função é a unidade de implementação e execução para as suas funções. O nome é o seu nome de aplicativo, anexado com um número gerado aleatoriamente.

A implementação também embala os ficheiros do projeto e implementa-os na nova aplicação de função utilizando a implementação zip, com modo de funcionamento do pacote ativado.

O authLevel para HTTP Trigger no projeto de amostra é ANONYMOUS, que vai saltar a autenticação. No entanto, se utilizar outros authLevel like FUNCTION ou ADMIN, precisa de obter a tecla de função para ligar para o ponto final da função em HTTP. A maneira mais fácil de obter a chave de função é a partir do portal do Azure.

Obtenha o URL do gatilho HTTP

Pode obter o URL necessário para ativar a sua função, com a tecla de função, a partir do portal do Azure.

  1. Navegue pela portal do Azure, inscreva-se, digite o nome da aplicação da sua função em Procurar no topo da página e prima para introduzir.

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

    Copiar o URL da função a partir do portal do Azure

  3. Escolha o predefinido (Tecla função) e selecione Copy.

Agora pode utilizar o URL copiado para aceder à sua função.

Verifique a função em Azure

Para verificar a aplicação de função em execução no Azure utilizando cURL, substitua o URL da amostra abaixo com o URL que copiou do portal.

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

Isto envia um pedido DEM para o ponto final de função com AzureFunctions no corpo do pedido. Vê a seguinte resposta.

Hello, AzureFunctions

Passos seguintes

Criou um projeto de funções Java com uma função httpizada, executou-o na sua máquina local e implantou-o para Azure. Agora, aumente a sua função por...