Wiązanie usługi Azure Database for PostgreSQL z aplikacją w usłudze Azure Spring Apps
Uwaga
Plany Podstawowa, Standardowa i Enterprise zostaną wycofane od połowy marca 2025 r. z 3-letnim okresem emerytalnym. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu usługi Azure Spring Apps.
Zużycie standardowe i dedykowany plan zostaną wycofane od 30 września 2024 r. z całkowitym zamknięciem po sześciu miesiącach. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz Migrowanie użycia usługi Azure Spring Apps w warstwie Standardowa i dedykowanego planu do usługi Azure Container Apps.
Ten artykuł dotyczy:✅ Java ✅ C#
Ten artykuł dotyczy:✅ Podstawowa/Standardowa ✅ Enterprise
Usługa Azure Spring Apps umożliwia automatyczne wiązanie wybranych usług platformy Azure z aplikacjami zamiast ręcznego konfigurowania aplikacji Spring Boot. W tym artykule pokazano, jak powiązać aplikację z wystąpieniem usługi Azure Database for PostgreSQL.
W tym artykule uwzględniliśmy dwie metody uwierzytelniania: uwierzytelnianie firmy Microsoft Entra i uwierzytelnianie PostgreSQL. Karta Bez hasła zawiera uwierzytelnianie firmy Microsoft Entra, a karta Hasło zawiera uwierzytelnianie PostgreSQL.
Uwierzytelnianie entra firmy Microsoft to mechanizm nawiązywania połączenia z usługą Azure Database for PostgreSQL przy użyciu tożsamości zdefiniowanych w identyfikatorze Entra firmy Microsoft. Dzięki uwierzytelnieniu firmy Microsoft Entra można zarządzać tożsamościami użytkowników bazy danych i innymi usługi firmy Microsoft w centralnej lokalizacji, co upraszcza zarządzanie uprawnieniami.
Uwierzytelnianie postgreSQL używa kont przechowywanych w usłudze PostgreSQL. Jeśli zdecydujesz się używać haseł jako poświadczeń dla kont, te poświadczenia są przechowywane w tabeli użytkowników. Ponieważ te hasła są przechowywane w usłudze PostgreSQL, musisz samodzielnie zarządzać rotacją haseł.
Wymagania wstępne
- Aplikacja wdrożona w usłudze Azure Spring Apps. Aby uzyskać więcej informacji, zobacz Szybki start: wdrażanie pierwszej aplikacji w usłudze Azure Spring Apps.
- Wystąpienie serwera elastycznego usługi Azure Database for PostgreSQL.
- Interfejs wiersza polecenia platformy Azure w wersji 2.45.0 lub nowszej.
Przygotowywanie projektu
Aby przygotować projekt, wykonaj następujące czynności.
W pliku pom.xml projektu dodaj następującą zależność:
<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>
W pliku application.properties usuń wszelkie
spring.datasource.*
właściwości.Zaktualizuj bieżącą aplikację, uruchamiając
az spring app deploy
polecenie , lub utwórz nowe wdrożenie dla tej zmiany, uruchamiając polecenieaz spring app deployment create
.
Wiązanie aplikacji z wystąpieniem usługi Azure Database for PostgreSQL
Uwaga
Pamiętaj, aby wybrać tylko jedno z poniższych podejść do utworzenia połączenia. Jeśli już utworzono tabele z jednym połączeniem, inni użytkownicy nie będą mogli uzyskać dostępu do tabel ani zmodyfikować ich. Podczas próby zastosowania innego podejścia aplikacja będzie zgłaszać błędy, takie jak "Odmowa uprawnień". Aby rozwiązać ten problem, połącz się z nową bazą danych lub usuń ją i utwórz ponownie istniejącą.
Uwaga
Domyślnie łączniki usługi są tworzone na poziomie aplikacji. Aby zastąpić połączenia, możesz ponownie utworzyć inne połączenia we wdrożeniach.
Zainstaluj rozszerzenie bez hasła łącznika usługi dla interfejsu wiersza polecenia platformy Azure:
az extension add --name serviceconnector-passwordless --upgrade
Skonfiguruj usługę Azure Spring Apps, aby nawiązać połączenie z bazą danych PostgreSQL przy użyciu przypisanej przez system tożsamości zarządzanej
az spring connection create
przy użyciu polecenia .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
Następne kroki
W tym artykule przedstawiono sposób powiązania aplikacji w usłudze Azure Spring Apps z wystąpieniem usługi Azure Database for PostgreSQL. Aby dowiedzieć się więcej o wiązaniu usług z aplikacją, zobacz Wiązanie bazy danych usługi Azure Cosmos DB z aplikacją w usłudze Azure Spring Apps.