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
- Eine in Azure Spring Apps bereitgestellte Anwendung. Weitere Informationen finden Sie unter Schnellstart: Bereitstellen Ihrer ersten Anwendung in Azure Spring Apps.
- Eine Instanz von Azure Database for PostgreSQL – Flexibler Server.
- Azure CLI (ab Version 2.45.0)
Vorbereiten Ihres Projekts
Bereiten Sie Ihr Projekt mit den folgenden Schritten vor:
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>
Entfernen Sie in der Datei application.properties alle
spring.datasource.*
-Eigenschaften.Aktualisieren Sie die aktuelle App durch Ausführen von
az spring app deploy
, oder erstellen Sie eine neue Bereitstellung für diese Änderung, indem Sieaz 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.
Installieren Sie die kennwortlose Dienstconnector-Erweiterung für die Azure CLI:
az extension add --name serviceconnector-passwordless --upgrade
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.