Déployer des applications Java Spring Boot dans Azure Container Apps
Cet article vous montre comment déployer une application Java Spring Boot avec ouverture de session par le compte Microsoft Entra vers Azure Container Apps.
Cet article suppose que vous avez terminé l’un des articles suivants en utilisant uniquement l’onglet Exécuter localement, et que vous souhaitez maintenant déployer sur Azure. Ces instructions sont les mêmes que celles de l’onglet Déployer vers Azure de ces articles :
- Sécuriser les applications Java Spring Boot à l’aide de Microsoft Entra ID
- Sécurisez les applications Java Spring Boot en utilisant Azure Active Directory B2C
- Permettre aux applications Java Spring Boot de connecter les utilisateurs et d’accéder à Microsoft Graph.
- Sécuriser les applications Java Spring Boot à l’aide de rôles et de revendications de rôles.
- Sécuriser les applications Java Spring Boot à l’aide de groupes et de revendications de groupes.
Prérequis
- Un compte Azure. Si vous n’en avez pas, créez un compte gratuit. Vous avez besoin de l’autorisation
Contributor
ouOwner
sur l’abonnement Azure pour continuer. Pour plus d’informations, consultez Attribuer des rôles Azure en utilisant le portail Azure. - Interface de ligne de commande Azure.
- Extension CLI Azure Container Apps, version
0.3.47
ou ultérieure. Utilisez la commandeaz extension add --name containerapp --upgrade --allow-preview
pour installer la dernière version. - Java Development Kit (JDK), version 17 ou supérieure.
- Maven.
Préparer le projet Spring
Suivez la procédure ci-dessous pour préparer le projet :
Utilisez la commande Maven suivante pour générer le projet :
mvn clean verify
Exécutez l’exemple de projet localement à l’aide de la commande suivante :
mvn spring-boot:run
Programme d’installation
Pour vous connecter à Azure à partir de l’interface CLI, exécutez la commande suivante et suivez les invites pour procéder à l’authentification.
az login
Pour être sûr d’utiliser la dernière version de l’interface CLI, exécutez la commande de mise à niveau.
az upgrade
Ensuite, installez ou mettez à jour l’extension Azure Container Apps pour l’interface CLI.
Si vous recevez des erreurs concernant des paramètres manquants lorsque vous exécutez des commandes az containerapp
dans Azure CLI, vérifiez que la dernière version de l’extension Azure Container Apps est installée.
az extension add --name containerapp --upgrade
Remarque
À compter de mai 2024, les extensions Azure CLI n’activent plus les fonctionnalités en préversion par défaut. Pour accéder aux fonctionnalités en préversion de Container Apps, installez l’extension Container Apps avec --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Maintenant que la version actuelle de l’extension ou du module est installée, inscrivez les espaces de noms Microsoft.App
et Microsoft.OperationalInsights
.
Remarque
Les ressources Azure Container Apps ont migré de l’espace de noms Microsoft.Web
vers l’espace de noms Microsoft.App
. Pour plus d’informations, reportez-vous à Migration de l’espace de noms de Microsoft.Web vers Microsoft.App en mars 2022.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Créer l’environnement Azure Container Apps
À présent que votre configuration Azure CLI est terminée, vous pouvez définir les variables d’environnement utilisées dans cet article.
Définissez les variables suivantes dans votre interpréteur de commandes Bash.
export RESOURCE_GROUP="ms-identity-containerapps"
export LOCATION="canadacentral"
export ENVIRONMENT="env-ms-identity-containerapps"
export API_NAME="ms-identity-api"
export JAR_FILE_PATH_AND_NAME="./target/ms-identity-spring-boot-webapp-0.0.1-SNAPSHOT.jar"
Créez un groupe de ressources.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION \
Créer un environnement avec un espace de travail Log Analytics généré automatiquement.
az containerapp env create \
--name $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location $LOCATION
Afficher le domaine par défaut de l’environnement d’application conteneur. Notez ce domaine à utiliser dans les sections ultérieures.
az containerapp env show \
--name $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--query properties.defaultDomain
Préparer l’application pour le déploiement
Lorsque vous déployez votre application dans Azure Container Apps, votre URL de redirection devient l’URL de redirection de votre instance d’application déployée dans Azure Container Apps. Suivez les étapes ci-dessous pour modifier ces paramètres dans votre fichier application.yml :
Naviguez jusqu’au fichier src\main\resources\application.yml de votre application et remplacez la valeur
post-logout-redirect-uri
par le nom de domaine de votre application déployée, comme indiqué dans l’exemple suivant. Veillez à remplacer<API_NAME>
et<default-domain-of-container-app-environment>
avec vos valeurs réelles : Par exemple, avec le domaine par défaut de votre environnement Azure Container App à l’étape précédente etms-identity-api
pour le nom de votre application, vous devez utiliserhttps://ms-identity-api.<default-domain>
pour la valeurpost-logout-redirect-uri
.post-logout-redirect-uri: https://<API_NAME>.<default-domain-of-container-app-environment>
Après avoir enregistré ce fichier, utilisez la commande suivante pour reconstruire votre application :
mvn clean package
Important
Le fichier application.yml de l’application contient actuellement la valeur de votre secret client dans le paramètre client-secret
. Il n’est pas judicieux de conserver cette valeur dans ce fichier. Vous pouvez également prendre un risque en délivrant le fichier à un dépôt Git. Pour obtenir l’approche recommandée, consultez Gérer les secrets dans Azure Container Apps.
Mettez à jour l’enregistrement de votre application Microsoft Entra ID
Étant donné que l’URI de redirection change pour votre application déployée sur Azure Container Apps, vous devez également modifier l’URI de redirection dans votre enregistrement d’application Microsoft Entra ID. Pour cela, effectuez les étapes suivantes :
Accédez à la page Inscriptions d’applications de la plateforme d’identités Microsoft pour les développeurs.
Utilisez le champ de recherche pour rechercher l’enregistrement de votre application - par exemple,
java-servlet-webapp-authentication
.Ouvrez votre enregistrement d’application en sélectionnant son nom.
Sélectionnez Authentification dans le menu déroulant.
Dans la section Web - Redirection des URI, sélectionnez Ajouter un URI.
Remplissez l’URI de votre application, en ajoutant
/login/oauth2/code/
- par exemple,https://<containerapp-name>.<default domain of container app environment>/login/oauth2/code/
.Cliquez sur Enregistrer.
Déployer l’application
Déployez le package JAR sur Azure Container Apps.
Remarque
Si nécessaire, vous pouvez spécifier la version de JDK dans les variables d’environnement de génération Java. Pour en savoir plus, consultez Créer des variables d’environnement pour Java dans Azure Container Apps.
Vous pouvez maintenant déployer votre fichier WAR avec la commande CLI az containerapp up
.
az containerapp up \
--name $API_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--environment $ENVIRONMENT \
--artifact <JAR_FILE_PATH_AND_NAME> \
--ingress external \
--target-port 8080 \
--query properties.configuration.ingress.fqdn
Remarque
La version par défaut du JDK est la version 17. Si vous devez changer la version de JDK pour qu’elle soit compatible avec votre application, vous pouvez utiliser l’argument --build-env-vars BP_JVM_VERSION=<YOUR_JDK_VERSION>
pour ajuster le numéro de version.
Pour en savoir plus sur la génération de variables d’environnement, consultez Générer des variables d’environnement pour Java dans Azure Container Apps.
Validez l’application
Dans cet exemple, la commande containerapp up
inclut l’argument --query properties.configuration.ingress.fqdn
qui renvoie le nom de domaine complet (FQDN), également appelé URL de l’application. Procédez comme suit pour vérifier les journaux d’activité de l’application afin d’identifier un éventuel problème de déploiement :
Accédez à l’URL de l’application de sortie à partir de la page Sorties de la section Déploiement.
Dans le volet de navigation de la page Vue d’ensemble de l’instance Azure Container Apps, sélectionnez Journaux d’activité pour vérifier les journaux d’activité de l’application.
Plus d’informations
- Plate-forme d’identité Microsoft (Microsoft Entra ID pour les développeurs)
- Présentation de la bibliothèque d’authentification Microsoft (MSAL)
- Démarrage rapide : Inscrire une application à l’aide de la plateforme d’identités Microsoft
- Démarrage rapide : configurer une application cliente pour accéder aux API web.
- Comprendre les expériences de consentement à l’application Microsoft Entra ID
- Comprendre le consentement de l’utilisateur et de l’administrateur
- Objets application et principal de service dans Microsoft Entra ID
- Clouds nationaux
- Exemples de code MSAL
- Bibliothèque client Spring Boot Starter de Microsoft Entra ID pour Java
- Bibliothèque d’authentification Microsoft pour Java (MSAL4J)
- Wiki MSAL4J
- Jetons d’ID
- Jetons d’accès de la plateforme d’identités Microsoft
Étapes suivantes
Pour en savoir plus et voir d’autres options de déploiement, veuillez consulter les articles suivants :