Delen via


Een Azure Database for PostgreSQL verbinden met uw toepassing in Azure Spring Apps

Notitie

Azure Spring Apps is de nieuwe naam voor de Azure Spring Cloud-service. Hoewel de service een nieuwe naam heeft, ziet u de oude naam op sommige plaatsen terwijl we werken aan het bijwerken van assets, zoals schermopnamen, video's en diagrammen.

Dit artikel is van toepassing op: ✔️ Java ✔️ C#

Dit artikel is van toepassing op: ✔️ Basic/Standard ✔️ Enterprise

Met Azure Spring Apps kunt u bepaalde Azure-services automatisch verbinden met uw toepassingen, in plaats van uw Spring Boot-toepassing handmatig te configureren. In dit artikel leest u hoe u uw toepassing verbindt met uw Azure Database for PostgreSQL-exemplaar.

In dit artikel bevatten we twee verificatiemethoden: Microsoft Entra-verificatie en PostgreSQL-verificatie. Op het tabblad Wachtwoordloos wordt de Microsoft Entra-verificatie weergegeven en op het tabblad Wachtwoord wordt de PostgreSQL-verificatie weergegeven.

Microsoft Entra-verificatie is een mechanisme voor het maken van verbinding met Azure Database for PostgreSQL met behulp van identiteiten die zijn gedefinieerd in Microsoft Entra-id. Met Microsoft Entra-verificatie kunt u databasegebruikersidentiteiten en andere Microsoft-services op een centrale locatie beheren, waardoor het beheer van machtigingen wordt vereenvoudigd.

PostgreSQL-verificatie maakt gebruik van accounts die zijn opgeslagen in PostgreSQL. Als u ervoor kiest om wachtwoorden te gebruiken als referenties voor de accounts, worden deze referenties opgeslagen in de gebruikerstabel. Omdat deze wachtwoorden zijn opgeslagen in PostgreSQL, moet u de rotatie van de wachtwoorden zelf beheren.

Vereisten

Uw project voorbereiden

Gebruik de volgende stappen om uw project voor te bereiden.

  1. Voeg de volgende afhankelijkheid toe aan het bestand pom.xml van uw project:

    <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. Verwijder in het bestand application.properties alle spring.datasource.*-eigenschappen.

  3. Werk de huidige app bij door deze wijziging uit te voeren az spring app deployof maak een nieuwe implementatie voor deze wijziging door uit te voeren az spring app deployment create.

Uw app verbinden met het Azure Database for PostgreSQL-exemplaar

Notitie

Zorg ervoor dat u slechts een van de volgende methoden selecteert om een verbinding te maken. Als u al tabellen met één verbinding hebt gemaakt, kunnen andere gebruikers de tabellen niet openen of wijzigen. Wanneer u de andere methode probeert, genereert de toepassing fouten zoals 'Machtiging geweigerd'. U kunt dit probleem oplossen door verbinding te maken met een nieuwe database of een bestaande database te verwijderen en opnieuw te maken.

Notitie

Standaard worden serviceconnectors gemaakt op toepassingsniveau. Als u de verbindingen wilt overschrijven, kunt u andere verbindingen opnieuw maken in de implementaties.

  1. Installeer de serviceconnector-extensie zonder wachtwoord voor de Azure CLI:

    az extension add --name serviceconnector-passwordless --upgrade
    
  2. Configureer Azure Spring Apps om verbinding te maken met de PostgreSQL-database met een door het systeem toegewezen beheerde identiteit met behulp van de az spring connection create opdracht.

    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
    

Volgende stappen

In dit artikel hebt u geleerd hoe u een toepassing in Azure Spring Apps koppelt aan een Azure Database for PostgreSQL-exemplaar. Zie Een Azure Cosmos DB-database binden aan een toepassing in Azure Spring Apps voor meer informatie over bindingsservices voor een toepassing.