Freigeben über


Binden einer Azure Database for PostgreSQL-Instanz an Ihre Anwendung in Azure Spring Apps

Hinweis

Die Pläne Basic, Standard und Enterprise gelten ab Mitte März 2025 als veraltet und werden über einen Zeitraum von 3 Jahren eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie in der Ankündigung zur Einstellung von Azure Spring Apps.

Der Standardverbrauchs- und dedizierte Plan wird ab dem 30. September 2024 als veraltet gekennzeichnet und nach sechs Monaten vollständig eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie unter Migrieren vom Standardverbrauchs- und dedizierten Plan von Azure Spring Apps zu Azure Container Apps.

Dieser Artikel gilt für: ✔️ Java ✔️ C#

Dieser Artikel gilt für: ✔️ Basic/Standard ✔️ Enterprise

Mit Azure Spring Apps können Sie ausgewählte Azure-Dienste automatisch an Ihre Anwendungen binden, anstatt Ihre Spring Boot-Anwendung manuell zu konfigurieren. In diesem Artikel erfahren Sie, wie Sie Ihre Anwendung an Ihre Azure Database for PostgreSQL-Instanz binden.

In diesem Artikel werden zwei Authentifizierungsmethoden verwendet: Microsoft Entra-Authentifizierung und PostgreSQL-Authentifizierung. Die Registerkarte Kennwortlos zeigt die Microsoft Entra-Authentifizierung und die Registerkarte Kennwort die PostgreSQL-Authentifizierung.

Die Microsoft Entra-Authentifizierung ist ein Mechanismus zum Herstellen einer Verbindung mit Azure Database for PostgreSQL unter Verwendung von Identitäten, die in Microsoft Entra ID definiert sind. Mit der Microsoft Entra-Authentifizierung können Sie Datenbankbenutzeridentitäten und andere Microsoft-Dienste an einem zentralen Ort verwalten, wodurch die Berechtigungsverwaltung vereinfacht wird.

Die PostgreSQL-Authentifizierung verwendet Konten, die in PostgreSQL gespeichert sind. Wenn Sie Kennwörter als Anmeldeinformationen für die Konten verwenden, werden diese Anmeldeinformationen in der Nutzer-Tabelle gespeichert. Da diese Kennwörter in PostgreSQL gespeichert sind, müssen Sie die Rotation der Kennwörter selbst verwalten.

Voraussetzungen

Vorbereiten Ihres Projekts

Bereiten Sie Ihr Projekt mit den folgenden Schritten vor:

  1. Fügen Sie der Datei pom.xml Ihres Projekts die folgende Abhängigkeit hinzu:

    <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. Entfernen Sie in der Datei application.properties alle spring.datasource.*-Eigenschaften.

  3. Aktualisieren Sie die aktuelle App durch Ausführen von az spring app deploy, oder erstellen Sie eine neue Bereitstellung für diese Änderung, indem Sie az spring app deployment create ausführen.

Binden der App an Ihre Azure Database for PostgreSQL-Instanz

Hinweis

Stellen Sie sicher, dass Sie nur eine der folgenden Ansätze auswählen, um eine Verbindung zu erstellen. Wenn Sie bereits Tabellen mit einer Verbindung erstellt haben, können andere Benutzer nicht auf die Tabellen zugreifen oder diese ändern. Wenn Sie den anderen Ansatz ausprobieren, löst die Anwendung Fehler wie "Berechtigung verweigert" aus. Um dieses Problem zu beheben, stellen Sie eine Verbindung mit einer neuen Datenbank her, oder löschen Sie sie, und erstellen Sie eine vorhandene neu.

Hinweis

Standardmäßig werden Dienstconnectors auf Anwendungsebene erstellt. Um die Verbindungen außer Kraft zu setzen, können Sie in den Bereitstellungen wieder andere Verbindungen erstellen.

  1. Installieren Sie die kennwortlose Dienstconnector-Erweiterung für die Azure CLI:

    az extension add --name serviceconnector-passwordless --upgrade
    
  2. Konfigurieren Sie Azure Spring Apps so, dass anhand des Befehls az spring connection create mit einer systemseitig zugewiesenen verwalteten Identität eine Verbindung mit der PostgreSQL-Datenbank hergestellt wird.

    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
    

Nächste Schritte

In diesem Artikel haben Sie erfahren, wie Sie eine Anwendung in Azure Spring Apps an eine Azure Database for PostgreSQL-Instanz binden können. Weitere Informationen zum Binden von Diensten an eine Anwendung finden Sie unter Binden einer Azure Cosmos DB-Datenbank an eine Anwendung in Azure Spring Apps.