Udostępnij za pośrednictwem


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

Przygotowywanie projektu

Aby przygotować projekt, wykonaj następujące czynności.

  1. 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>
    
  2. W pliku application.properties usuń wszelkie spring.datasource.* właściwości.

  3. Zaktualizuj bieżącą aplikację, uruchamiając az spring app deploypolecenie , lub utwórz nowe wdrożenie dla tej zmiany, uruchamiając polecenie az 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.

  1. Zainstaluj rozszerzenie bez hasła łącznika usługi dla interfejsu wiersza polecenia platformy Azure:

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