Esercizio - Connettersi a un database
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:
Creare un server flessibile PostgreSQL usando il comando seguente:
az postgres flexible-server create \ --resource-group $RESOURCE_GROUP \ --name $POSTGRESQLSERVERTrovare 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.
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 $POSTGRESQLSERVERPer 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:
Nel portale di Azure, navigare all'istanza di Azure Container Apps.
Passare a Impostazioni>Connettore del servizio.
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.
-
Base:
Confermare e distribuire le modifiche.
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 |