Condividi tramite


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

Preparare il progetto

Per preparare il progetto, seguire questa procedura.

  1. 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>
    
  2. Nel file application.properties rimuovere tutte le proprietà spring.datasource.*.

  3. Aggiornare l'app corrente eseguendo az spring app deployo creare una nuova distribuzione per questa modifica eseguendo az 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.

  1. Installare l'estensione senza password Connettore di servizi per l'interfaccia della riga di comando di Azure:

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