Lier une instance Azure Database pour PostgreSQL à votre application dans Azure Spring Apps
Remarque
Les plans Essentiel, Standard et Entreprise seront déconseillés à compter de la mi-mars 2025, avec une période de mise hors service de 3 ans. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez l’annonce de mise hors service d’Azure Spring Apps.
Le plan de consommation standard et dédiée sera déconseillé à compter du 30 septembre 2024, avec un arrêt complet après six mois. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez Migrer le plan de consommation standard et dédiée Azure Spring Apps vers Azure Container Apps.
Cet article s’applique à : ✔️ Java ✔️ C#
Cet article s’applique au : Niveau ✔️ De base/Standard ✔️ Entreprise
Azure Spring Apps vous permet de lier automatiquement certains services Azure à vos applications au lieu de devoir configurer manuellement votre application Spring Boot. Cet article vous montre comment lier votre application à votre instance Azure Database pour PostgreSQL.
Dans cet article, nous incluons deux méthodes d’authentification : l’authentification Microsoft Entra et l’authentification PostgreSQL. L’onglet Sans mot de passe affiche l’authentification Microsoft Entra et l’onglet Mot de passe affiche l’authentification PostgreSQL.
L’authentification Microsoft Entra est un mécanisme de connexion à Azure Database pour PostgreSQL utilisant les identités définies dans Microsoft Entra ID. Avec l’authentification Microsoft Entra, vous pouvez gérer les identités des utilisateurs de base de données et d’autres services Microsoft dans un emplacement centralisé, ce qui simplifie la gestion des autorisations.
L’authentification PostgreSQL utilise des comptes stockés dans PostgreSQL. Si vous choisissez d’utiliser des mots de passe comme informations d’identification pour les comptes, ces informations d’identification sont stockées dans la table d’utilisateurs. Étant donné que ces mots de passe sont stockés dans PostgreSQL, vous devez gérer vous-même la rotation des mots de passe.
Prérequis
- Une application déployée dans Azure Spring Apps. Pour plus d’informations, consultez Démarrage rapide : Déployer votre première application sur Azure Spring Apps.
- Une instance Azure Database pour PostgreSQL Serveur flexible.
- Azure CLI version 2.45.0 ou ultérieure.
Préparation du projet
Suivez les étapes ci-après pour préparer votre projet.
Dans le fichier pom.xml de votre projet, ajoutez la dépendance suivante :
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-jdbc-postgresql</artifactId> </dependency>
Dans le fichier application.properties, supprimez toutes les propriétés
spring.datasource.*
.Mettez à jour l’application actuelle en exécutant
az spring app deploy
ou créez un déploiement pour ce changement en exécutantaz spring app deployment create
.
Lier votre application à l’instance Azure Database pour PostgreSQL
Remarque
Veillez à sélectionner une seule des approches suivantes pour créer une connexion. Si vous avez déjà créé des tables avec une connexion, les autres utilisateurs ne peuvent ni accéder aux tables ni les modifier. Quand vous essayez l’autre approche, l’application génère des erreurs de type « Autorisation refusée ». Pour résoudre ce problème, connectez-vous à une nouvelle base de données ou supprimez une base de données existante et recréez-en une.
Remarque
Par défaut, les connecteurs de service sont créés au niveau de l’application. Pour remplacer les connexions, vous pouvez créer à nouveau d’autres connexions dans les déploiements.
Installez l’extension sans mot de passe Connecteur de services pour Azure CLI :
az extension add --name serviceconnector-passwordless --upgrade
Configurez Azure Spring Apps pour vous connecter à la base de données PostgreSQL avec une identité managée affectée par le système à l’aide de la commande
az spring connection create
.az spring connection create postgres-flexible \ --resource-group $AZ_SPRING_APPS_RESOURCE_GROUP \ --service $AZ_SPRING_APPS_SERVICE_INSTANCE_NAME \ --app $APP_NAME \ --deployment $DEPLOYMENT_NAME \ --target-resource-group $POSTGRES_RESOURCE_GROUP \ --server $POSTGRES_SERVER_NAME \ --database $DATABASE_NAME \ --system-identity
Étapes suivantes
Dans cet article, vous avez appris à lier une application dans Azure Spring Apps à une instance Azure Database pour PostgreSQL. Pour en savoir plus sur la liaison de services à une application, consultez Lier une base de données Azure Cosmos DB à une application dans Azure Spring Apps.