Associare un Database di Azure per PostgreSQL all'applicazione in Azure Spring Apps
Nota
I piani Basic, Standard ed Enterprise saranno deprecati a partire dalla metà di marzo 2025, con un periodo di ritiro di 3 anni. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere l'annuncio di ritiro di Azure Spring Apps.
Il piano Standard a consumo e dedicato sarà deprecato a partire dal 30 settembre 2024, con un arresto completo dopo sei mesi. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere Eseguire la migrazione del consumo di Azure Spring Apps Standard e del piano dedicato alle app Azure Container.
Questo articolo si applica a: ✔️ Java ✔️ C#
Questo articolo si applica a: ✔️ Basic/Standard ✔️ Enterprise
Con Azure Spring Apps è possibile associare automaticamente i servizi di Azure selezionati alle applicazioni, invece di dover configurare manualmente l'applicazione Spring Boot. Questo articolo illustra come associare l'applicazione all'istanza di Database di Azure per PostgreSQL.
In questo articolo sono inclusi due metodi di autenticazione: autenticazione di Microsoft Entra e autenticazione PostgreSQL. La scheda Senza password mostra l'autenticazione Microsoft Entra, la scheda Password l'autenticazione PostgreSQL.
L'autenticazione Microsoft Entra è un meccanismo per connettersi a Database di Azure per PostgreSQL tramite identità definite in Microsoft Entra ID. Con l'autenticazione Microsoft Entra è possibile gestire centralmente le identità degli utenti del database e di altri servizi Microsoft semplificando la gestione delle autorizzazioni.
L'autenticazione PostgreSQL usa gli account archiviati in PostgreSQL. Se si sceglie di usare le password come credenziali per gli account, queste credenziali vengono archiviate nella tabella utente. Poiché queste password vengono archiviate in PostgreSQL, è necessario gestire manualmente la rotazione delle password.
Prerequisiti
- Un'applicazione distribuita in Azure Spring Apps. Per altre informazioni, vedere Avvio rapido: Distribuire la prima applicazione in Azure Spring Apps.
- Istanza del server flessibile Database di Azure per PostgreSQL.
- Interfaccia della riga di comando di Azure versione 2.45.0 o successiva.
Preparare il progetto
Per preparare il progetto, seguire questa procedura.
Aggiungere la dipendenza seguente al file pom.xml del progetto:
<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>
Nel file application.properties rimuovere tutte le proprietà
spring.datasource.*
.Aggiornare l'app corrente eseguendo
az spring app deploy
o creare una nuova distribuzione per questa modifica eseguendoaz spring app deployment create
.
Associare l'app all'istanza di Database di Azure per PostgreSQL
Nota
Assicurarsi di selezionare solo uno degli approcci seguenti per creare una connessione. Se sono già state create tabelle con una connessione, gli altri utenti non possono accedere o modificare le tabelle. Quando si tenta l'altro approccio, l'applicazione genererà errori come "Autorizzazione negata". Per risolvere questo problema, connettersi a un nuovo database o eliminare e ricreare uno esistente.
Nota
Per impostazione predefinita, i connettori di servizio vengono creati a livello di applicazione. Per eseguire l'override delle connessioni, è possibile creare di nuovo altre connessioni nelle distribuzioni.
Installare l'estensione senza password Connettore di servizi per l'interfaccia della riga di comando di Azure:
az extension add --name serviceconnector-passwordless --upgrade
Configurare Azure Spring Apps per connettersi a Postgre database SQL con un'identità gestita assegnata dal sistema usando il
az spring connection create
comando .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
Passaggi successivi
In questo articolo si è appreso come associare un'applicazione in Azure Spring Apps a un'istanza di Database di Azure per PostgreSQL. Per altre informazioni sull'associazione di servizi a un'applicazione, vedere Associare un database di Azure Cosmos DB a un'applicazione in Azure Spring Apps.