Esercizio - Connettersi a un database

Completato

Poiché è stata distribuita l'applicazione Spring PetClinic con il database in memoria H2 predefinito, è possibile connetterla a un database più potente e persistente, ad esempio PostgreSQL. L'uso di un database permanente garantisce che i dati dell'applicazione vengano archiviati anche quando l'applicazione viene riavviata, garantendo maggiore durabilità e scalabilità per l'uso in produzione.

Annotazioni

Questa unità è facoltativa. È possibile ignorarlo se si ha già familiarità con le configurazioni del database.

Creare il server PostgreSQL

Usare i comandi seguenti per impostare le variabili di ambiente usate per creare le connessioni di database:

export POSTGRESQLSERVER="petclinic-server"
export DATABASE="petclinic"

Aggiornare spring.profiles.active per PostgreSQL

Usare il comando seguente per aggiornare le variabili di ambiente delle app contenitore distribuite per impostare il database come PostgreSQL:

az containerapp update \
    --resource-group $RESOURCE_GROUP \
    --name $APP_NAME \
    --set-env-vars "spring.profiles.active"="postgres"

Creare un nuovo database

Per creare un database all'interno di una nuova istanza del server flessibile PostgreSQL, seguire questa procedura:

  1. Creare un server flessibile PostgreSQL usando il comando seguente:

    az postgres flexible-server create \
        --resource-group $RESOURCE_GROUP \
        --name $POSTGRESQLSERVER
    
  2. Trovare il nome utente e la password dell'amministratore generati automaticamente nell'output, quindi salvare queste credenziali in una posizione sicura. Facoltativamente, è possibile usarli in un secondo momento per connettersi e configurare il database.

  3. Creare un nuovo database nell'istanza del server flessibile PostgreSQL usando il comando seguente:

    az postgres flexible-server db create \
        --resource-group $RESOURCE_GROUP \
        --database-name $DATABASE \
        --server-name $POSTGRESQLSERVER
    

    Per altre informazioni, vedere Avvio rapido: Creare un'istanza di Database di Azure per PostgreSQL - Server flessibile.

Connettersi tramite Service Connector

Connettere quindi l'app contenitore distribuita in precedenza al database PostgreSQL seguendo questa procedura:

  1. Nel portale di Azure, navigare all'istanza di Azure Container Apps.

  2. Passare a Impostazioni>Connettore del servizio.

  3. Selezionare Crea e quindi compilare il modulo di connessione usando i dettagli seguenti:

    • Base:
      • Per Tipo di servizio, usa DB per server flessibile PostgreSQL.
      • Per il server flessibile PostgreSQL, usare petclinic-server.
      • Per il database PostgreSQL, usare petclinic.
      • Per Tipo di client, usare SpringBoot.
    • Autenticazione:
      • Selezionare Stringa di connessione.
      • Immettere i valori per i campi Nome utente e Password e lasciare gli altri campi con le impostazioni predefinite.

    Screenshot del portale di Azure che mostra la pagina Service Connector (anteprima) e il riquadro Crea connessione.

  4. Confermare e distribuire le modifiche.

  5. Dopo aver pronto la distribuzione, selezionare Convalida per convalidare lo stato della connessione.

Per altre informazioni, vedere Connettersi al database PostgreSQL da un'app contenitore Quarkus Java senza segreti usando un'identità gestita.

Convalidare la configurazione del database

La configurazione è stata completata. Se ci si connette al database PostgreSQL, è possibile vedere che la tabella è stata creata, che dovrebbe essere simile a quella illustrata nell'esempio seguente:

           List of relations
| Schema | Name            | Type  |
|--------|-----------------|-------|
| public | owners          | table |
| public | pets            | table |
| public | specialties     | table |
| public | types           | table |
| public | vet_specialties | table |
| public | vets            | table |
| public | visits          | table |