Utiliser Java et Gradle pour créer et publier une fonction sur Azure

Cet article montre comment générer et publier un projet de fonction Java sur Azure Functions avec l’outil en ligne de commande Gradle. Quand vous avez terminé, votre code de fonction s’exécute dans Azure dans un plan d’hébergement serverless et est déclenché par une requête HTTP.

Notes

Si Gradle n’est pas votre outil de développement préféré, consultez nos tutoriels similaires, destinés aux développeurs Java utilisant Maven, IntelliJ IDEA et VS Code.

Prérequis

Pour développer des fonctions avec Java, les éléments suivants doivent être installés :

Vous avez également besoin d’un abonnement Azure actif. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.

Important

Pour pouvoir effectuer ce démarrage rapide, vous devez définir la variable d’environnement JAVA_HOME sur l’emplacement d’installation du JDK.

Préparer un projet Functions

Utilisez la commande suivante pour cloner l’exemple de projet :

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

Ouvrez build.gradle et remplacez appName dans la section suivante par un nom unique pour éviter les conflits de noms de domaine lors du déploiement sur 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"
}

Ouvrez le nouveau fichier Function.java à partir du chemin src/main/java dans un éditeur de texte et passez en revue le code généré. Ce code est une fonction déclenchée par HTTP qui renvoie le corps de la requête.

Exécuter la fonction localement

Exécutez la commande suivante pour générer et exécuter le projet de fonction :

gradle jar --info
gradle azureFunctionsRun

Une sortie semblable à celle-ci est retournée par Azure Functions Core Tools quand vous exécutez le projet localement :

...

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
...

Déclenchez la fonction à partir de la ligne de commande en utilisant la commande cURL suivante dans une nouvelle fenêtre de terminal :

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

La sortie attendue est la suivante :

Hello, AzureFunctions

Notes

Si vous définissez authLevel sur FUNCTION ou ADMIN, la clé de fonction n'est pas nécessaire lors de l'exécution locale.

Utilisez Ctrl+C dans le terminal pour arrêter le code de la fonction.

Déployer la fonction sur Azure

Une application de fonction et les ressources associées sont créées dans Azure lors du déploiement initial de votre application de fonction. Avant de procéder au déploiement, utilisez la commande Azure CLI az login pour vous connecter à votre abonnement Azure.

az login

Conseil

Si votre compte peut accéder à plusieurs abonnements, utilisez az account set pour définir l’abonnement par défaut pour cette session.

Utilisez la commande suivante pour déployer votre projet vers une nouvelle application de fonction.

gradle azureFunctionsDeploy

Cela crée les ressources suivantes dans Azure, en fonction des valeurs du fichier build.gradle :

  • Groupe de ressources. Nommé avec le resourceGroup que vous avez fourni.
  • Compte de stockage. Requis par les fonctions. Le nom est généré de façon aléatoire en fonction des exigences du nom de compte de stockage.
  • Plan App Service. Hébergement de Plan de consommation serverless pour votre application de fonction dans la région spécifiée. Le nom est généré de façon aléatoire.
  • Application de fonction. Une application de fonction est l’unité de déploiement et d’exécution de vos fonctions. Le nom est l’appName, auquel est ajouté un numéro généré de façon aléatoire.

Le déploiement empaquette également les fichiers projet et les déploie dans la nouvelle application de fonction à l’aide de zip deployment, en activant le mode d’exécution à partir du package.

Le paramètre authLevel du déclencheur HTTP de l'exemple de projet est ANONYMOUS, ce qui permet d'ignorer l'authentification. Cependant, si vous utilisez un autre niveau d'authentification, comme FUNCTION ou ADMIN, vous devez obtenir la clé de fonction pour appeler le point de terminaison de fonction sur HTTP. Le moyen le plus simple d’obtenir la clé de fonction consiste à passer par le Azure portal.

Obtient l’URL du déclencheur HTTP

Vous pouvez obtenir l’URL requise pour déclencher votre fonction, avec la clé de fonction, à partir du portail Azure.

  1. Accédez au Azure portal, connectez-vous, tapez l’appName de votre application de fonction dans Rechercher en haut de la page, puis appuyez sur Entrée.

  2. Dans votre application de fonction, sélectionnez Fonctions, choisissez votre fonction, puis cliquez sur Obtenir l’URL de fonction en haut à droite.

    Copy the function URL from the Azure portal

  3. Choisissez par défaut (Clé de fonction) et sélectionnez Copier.

Vous pouvez maintenant utiliser l’URL copiée pour accéder à votre fonction.

Vérifier la fonction dans Azure

Pour vérifier que l’application de fonction s’exécute sur Azure à l’aide de cURL, remplacez l’URL de l’exemple ci-dessous par celle que vous avez copiée à partir du portail.

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

Cela envoie une requête POST au point de terminaison de fonction avec AzureFunctions dans le corps de la requête. Vous obtenez la réponse suivante.

Hello, AzureFunctions

Étapes suivantes

Vous avez créé un projet de fonctions Java avec une fonction déclenchée par HTTP, vous l’avez exécuté sur votre ordinateur local et vous l’avez déployée sur Azure. À présent, étendez votre fonction en effectuant un...