Share via


Associare un Database di Azure per PostgreSQL all'applicazione in Azure Spring Apps

Nota

Azure Spring Apps è il nuovo nome del servizio Azure Spring Cloud. Anche se il servizio ha un nuovo nome, il nome precedente verrà visualizzato in alcune posizioni per un po' mentre si lavora per aggiornare gli asset, ad esempio screenshot, video e diagrammi.

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 di Microsoft Entra e la scheda Password mostra l'autenticazione PostgreSQL.

L'autenticazione di Microsoft Entra è un meccanismo per la connessione a Database di Azure per PostgreSQL usando le identità definite in Microsoft Entra ID. Con l'autenticazione di Microsoft Entra, è possibile gestire le identità utente del database e altre servizi Microsoft in una posizione centrale, 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 Connessione or 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 del servizio Connessione or 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
    

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

I Connessione or di servizio vengono creati a livello di distribuzione. Pertanto, se viene creata un'altra distribuzione, è necessario creare di nuovo le connessioni.

  1. Installare l'estensione senza password del servizio Connessione or 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 \
        --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.