Partager via


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

Préparation du projet

Suivez les étapes ci-après pour préparer votre projet.

  1. 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>
    
  2. Dans le fichier application.properties, supprimez toutes les propriétés spring.datasource.*.

  3. Mettez à jour l’application actuelle en exécutant az spring app deploy ou créez un déploiement pour ce changement en exécutant az 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.

  1. Installez l’extension sans mot de passe Connecteur de services pour Azure CLI :

    az extension add --name serviceconnector-passwordless --upgrade
    
  2. 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.