Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Bien que de nombreux services Azure disposent de plug-ins Jenkins, la plupart de ces plug-ins ont cessé d'être pris en charge à partir du 29 février 2024. Azure CLI est le moyen actuellement recommandé d’intégrer Jenkins aux services Azure. Pour plus d’informations, consultez l’article Sur les plug-ins Jenkins pour Azure.
Azure Functions est un service de calcul serverless. À l’aide d’Azure Functions, vous pouvez exécuter du code à la demande sans provisionner ou gérer l’infrastructure. Ce tutoriel montre comment déployer une fonction Java sur Azure Functions à l’aide du plug-in Azure Functions.
Conditions préalables
- Abonnement Azure : si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
- Serveur Jenkins : si vous n’avez pas installé de serveur Jenkins, reportez-vous à l’article Créer un serveur Jenkins sur Azure.
Afficher le code source
Le code source utilisé pour ce didacticiel se trouve dans le dépôt GitHub de Visual Studio China.
Créer une fonction Java
Pour créer une fonction Java avec la pile d'exécution Java, utilisez le portail Azure ou Azure CLI.
Les étapes suivantes montrent comment créer une fonction Java à l’aide d’Azure CLI :
Créez un groupe de ressources, en remplaçant l’espace <réservé resource_group> par le nom de votre groupe de ressources.
az group create --name <resource_group> --location eastus
Créez un compte de stockage Azure, en remplaçant les espaces réservés par les valeurs appropriées.
az storage account create --name <storage_account> --location eastus --resource-group <resource_group> --sku Standard_LRS
Créez l’application de fonction de test, en remplaçant les espaces réservés par les valeurs appropriées.
az functionapp create --resource-group <resource_group> --runtime java --consumption-plan-location eastus --name <function_app> --storage-account <storage_account> --functions-version 2
Préparer le serveur Jenkins
Les étapes suivantes expliquent comment préparer le serveur Jenkins :
Déployez un serveur Jenkins sur Azure. Si vous n’avez pas encore installé d’instance du serveur Jenkins, l’article Créer un serveur Jenkins sur Azure vous guide tout au long du processus.
Connectez-vous à l’instance Jenkins avec SSH.
Sur l’instance Jenkins, installez Az CLI, version 2.0.67 ou ultérieure.
Installez maven à l’aide de la commande suivante :
sudo apt install -y maven
Sur l’instance Jenkins, installez Azure Functions Core Tools en émettant les commandes suivantes à l’invite de terminal :
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-$(lsb_release -cs)-prod $(lsb_release -cs) main" > /etc/apt/sources.list.d/dotnetdev.list' cat /etc/apt/sources.list.d/dotnetdev.list sudo apt-get update sudo apt-get install azure-functions-core-tools-3
Jenkins a besoin d’un principal de service Azure pour authentifier et accéder aux ressources Azure. Pour obtenir des instructions pas à pas, reportez-vous au déploiement sur Azure App Service .
Vérifiez que le plug-in Credentials est installé.
Dans le menu, sélectionnez Gérer Jenkins.
Sous Configuration du système, sélectionnez Gérer le plug-in.
Sélectionnez l’onglet Installé .
Dans le champ de filtre , entrez
credentials
.Vérifiez que le plug-in Credentials est installé. Si ce n’est pas le cas, vous devez l’installer à partir de l’onglet Disponible .
Dans le menu, sélectionnez Gérer Jenkins.
Sous Sécurité, sélectionnez Gérer les informations d’identification.
Sous Informations d’identification, sélectionnez (global).
Dans le menu, sélectionnez Ajouter des informations d’identification.
Entrez les valeurs suivantes pour votre principal de service Microsoft Azure :
- Type : Sélectionnez la valeur : Nom d’utilisateur avec mot de passe.
-
Nom d’utilisateur : spécifiez le
appId
principal de service créé. -
Mot de passe : spécifiez le
password
(secret) du principal de service. -
ID : spécifiez l’identificateur d’informations d’identification, tel que
azuresp
.
Cliquez sur OK.
Forkez le dépôt GitHub d'exemple
Connectez-vous au dépôt GitHub pour l’exemple d’application de parité.
Dans le coin supérieur droit de GitHub, choisissez Fork.
Suivez les invites pour sélectionner votre compte GitHub et terminer le fork.
Créer un pipeline Jenkins
Dans cette section, vous allez créer le pipeline Jenkins.
Dans le tableau de bord Jenkins, créez un pipeline.
Activez Préparer un environnement pour l’exécution.
Dans la section Pipeline-Definition>, sélectionnez Script de pipeline à partir de SCM.
Entrez l’URL et le chemin de script de votre fork GitHub (« doc/resources/jenkins/JenkinsFile ») à utiliser dans l’exemple JenkinsFile.
node { withEnv(['AZURE_SUBSCRIPTION_ID=99999999-9999-9999-9999-999999999999', 'AZURE_TENANT_ID=99999999-9999-9999-9999-999999999999']) { stage('Init') { cleanWs() checkout scm } stage('Build') { sh 'mvn clean package' } stage('Publish') { def RESOURCE_GROUP = '<resource_group>' def FUNC_NAME = '<function_app>' // login Azure withCredentials([usernamePassword(credentialsId: 'azuresp', passwordVariable: 'AZURE_CLIENT_SECRET', usernameVariable: 'AZURE_CLIENT_ID')]) { sh ''' az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET -t $AZURE_TENANT_ID az account set -s $AZURE_SUBSCRIPTION_ID ''' } sh 'cd $PWD/target/azure-functions/odd-or-even-function-sample && zip -r ../../../archive.zip ./* && cd -' sh "az functionapp deployment source config-zip -g $RESOURCE_GROUP -n $FUNC_NAME --src archive.zip" sh 'az logout' } } }
Générer et déployer
Il est maintenant temps d’exécuter le travail Jenkins.
Tout d’abord, obtenez la clé d’autorisation via les instructions de l’article sur les déclencheurs et liaisons HTTP Azure Functions .
Dans votre navigateur, entrez l’URL de l’application. Remplacez les espaces réservés par les valeurs appropriées et spécifiez une valeur numérique pour <input_number> comme entrée pour la fonction Java.
https://<function_app>.azurewebsites.net/api/HttpTrigger-Java?code=<authorization_key>&number=<input_number>
Vous verrez des résultats similaires à l’exemple de sortie suivant (où un nombre impair - 365 - a été utilisé comme test) :
The number 365 is Odd.
Nettoyer les ressources
Si vous ne souhaitez pas continuer à utiliser cette application, supprimez les ressources que vous avez créées à l’étape suivante :
az group delete -y --no-wait -n <resource_group>