Guida introduttiva: Avviare la prima applicazione di microservizi Java con componenti Java gestiti in App Azure Container
Questo argomento di avvio rapido illustra come distribuire un'applicazione in App Azure Container che usa componenti Java per gestire la gestione della configurazione, l'individuazione dei servizi e l'integrità e le metriche. L'applicazione di esempio usata in questo esempio è Il PetClinic Java, che usa il modello di architettura del microservizio. Il diagramma seguente illustra l'architettura dell'applicazione PetClinic in App Azure Container:
L'applicazione PetClinic include le funzionalità seguenti:
- Il front-end è un'app Web autonoma Node.js ospitata nell'app gateway API.
- Il gateway API instrada le richieste alle app del servizio back-end.
- Le app back-end vengono compilate con Spring Boot.
- Ogni app back-end usa un database HyperSQL come archivio permanente.
- Le app usano componenti Java gestiti in App Azure Container, inclusi un registro dei servizi, un server di configurazione e un server di amministrazione.
- Il server di configurazione legge i dati da un repository Git.
- Un'area di lavoro Log Analytics registra i dati del server.
In questa esercitazione:
- Creare un server di configurazione, un server Eureka, un server di amministrazione e componenti di amministrazione
- Creare una serie di app di microservizi
- Associare i componenti server alle app di microservizi
- Distribuire la raccolta di app
- Esaminare le app distribuite
Al termine di questo articolo si distribuisce un'applicazione Web e tre applicazioni back-end configurate per l'uso con tre diversi componenti Java. È quindi possibile gestire ogni componente tramite il portale di Azure.
Prerequisiti
- Account Azure: se non si ha un account Azure, crearne uno gratuitamente. Per usare questa guida introduttiva, è necessaria l'autorizzazione Collaboratore o Proprietario per la sottoscrizione di Azure. Per ulteriori informazioni, vedi Assegnare ruoli di Azure usando il portale di Azure.
- Interfaccia della riga di comando di Azure: installare l'interfaccia della riga di comando di Azure.
- Estensione dell'interfaccia della riga di comando di App Azure Container. Usare la versione 0.3.47 o successiva. Usare quindi il comando
az extension add --name containerapp --upgrade --allow-preview
per installare la versione più recente.
Attrezzaggio
Per creare variabili di ambiente, un gruppo di risorse e un ambiente di App Azure Container, seguire questa procedura:
Le variabili di ambiente contengono i valori personalizzati, quindi sostituire i valori segnaposto racchiusi tra
<>
i propri valori prima di eseguire i comandi seguenti:export RESOURCE_GROUP=<RESOURCE_GROUP> export LOCATION=<LOCATION> export CONTAINER_APP_ENVIRONMENT=<CONTAINER_APPS_ENVIRONMENT>
Ora si creano altre variabili di ambiente che contengono le impostazioni per l'app di microservizi. Questi valori vengono usati per definire i nomi e le configurazioni dei componenti Java e le app azure Container usate per distribuire i microservizi. Creare queste variabili di ambiente usando i comandi seguenti:
export CONFIG_SERVER_COMPONENT=configserver export ADMIN_SERVER_COMPONENT=admin export EUREKA_SERVER_COMPONENT=eureka export CONFIG_SERVER_URI=https://github.com/spring-petclinic/spring-petclinic-microservices-config.git export CUSTOMERS_SERVICE=customers-service export VETS_SERVICE=vets-service export VISITS_SERVICE=visits-service export API_GATEWAY=api-gateway export CUSTOMERS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-customers-service export VETS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-vets-service export VISITS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-visits-service export API_GATEWAY_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-api-gateway
Accedere all'interfaccia della riga di comando di Azure e scegliere la sottoscrizione attiva usando il comando seguente:
az login
Creare un gruppo di risorse per organizzare i servizi di Azure usando il comando seguente:
az group create \ --name $RESOURCE_GROUP \ --location $LOCATION
Creare l'ambiente Di Azure Container Apps, che ospita sia i componenti Java che le app contenitore, usando il comando seguente:
az containerapp env create \ --resource-group $RESOURCE_GROUP \ --name $CONTAINER_APP_ENVIRONMENT \ --location $LOCATION
Creare componenti Java
Ora si creano i componenti Java seguenti che supportano l'app:
- Server di configurazione. Usato per gestire le impostazioni di configurazione per le app di microservizi.
- Server Eureka. Usato per gestire il registro dei servizi e l'individuazione.
- Server di amministrazione. Usato per monitorare e gestire l'integrità e le metriche delle app di microservizi.
Per creare questi componenti server, seguire questa procedura:
Creare il server di configurazione per i componenti Java usando il comando seguente:
az containerapp env java-component config-server-for-spring create \ --resource-group $RESOURCE_GROUP \ --name $CONFIG_SERVER_COMPONENT \ --environment $CONTAINER_APP_ENVIRONMENT \ --configuration spring.cloud.config.server.git.uri=$CONFIG_SERVER_URI
Creare il server Eureka per i componenti Java usando il comando seguente:
az containerapp env java-component eureka-server-for-spring create \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_SERVER_COMPONENT --environment $CONTAINER_APP_ENVIRONMENT \
Creare il server di amministrazione per i componenti Java usando il comando seguente:
az containerapp env java-component admin-for-spring create \ --resource-group $RESOURCE_GROUP \ --name $ADMIN_SERVER_COMPONENT --environment $CONTAINER_APP_ENVIRONMENT \
Distribuire le app di microservizi
Per distribuire le app di microservizi Java in App Azure Container usando le immagini del contenitore predefinite, seguire questa procedura:
Nota
In questo articolo viene usata una serie di immagini compilate per le app di microservizi Spring Petclinic. È anche possibile personalizzare il codice di esempio e usare le proprie immagini. Per altre informazioni, vedere il repository GitHub azure-container-apps-java-samples.
Creare l'app dati del cliente usando il comando seguente:
az containerapp create \ --resource-group $RESOURCE_GROUP \ --name $CUSTOMERS_SERVICE \ --environment $CONTAINER_APP_ENVIRONMENT \ --image $CUSTOMERS_SERVICE_IMAGE
Creare l'app vet usando il comando seguente:
az containerapp create \ --resource-group $RESOURCE_GROUP \ --name $VETS_SERVICE \ --environment $CONTAINER_APP_ENVIRONMENT \ --image $VETS_SERVICE_IMAGE
Creare l'app visite usando il comando seguente:
az containerapp create \ --resource-group $RESOURCE_GROUP \ --name $VISITS_SERVICE \ --environment $CONTAINER_APP_ENVIRONMENT \ --image $VISITS_SERVICE_IMAGE
Creare l'app gateway API usando il comando seguente:
az containerapp create \ --resource-group $RESOURCE_GROUP \ --name $API_GATEWAY \ --environment $CONTAINER_APP_ENVIRONMENT \ --image $API_GATEWAY_IMAGE \ --ingress external \ --target-port 8080 \ --query properties.configuration.ingress.fqdn
Associare app contenitore a componenti Java
Associare quindi i componenti Java alle app contenitore. Le associazioni create in questa sezione forniscono le funzionalità seguenti:
- Inserire i dati di configurazione in ogni app dal server di configurazione gestito all'avvio.
- Registrare l'app con il server Eureka gestito per l'individuazione del servizio.
- Abilitare il server di amministrazione per monitorare l'app.
Usare il containerapp update
comando per creare associazioni per ogni app seguendo questa procedura:
Aggiungere associazioni all'app dati del cliente usando il comando seguente:
az containerapp update \ --resource-group $RESOURCE_GROUP \ --name $CUSTOMERS_SERVICE \ --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
Aggiungere associazioni al servizio vet usando il comando seguente:
az containerapp update \ --resource-group $RESOURCE_GROUP \ --name $VETS_SERVICE \ --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
Aggiungere associazioni al servizio visite usando il comando seguente:
az containerapp update \ --resource-group $RESOURCE_GROUP \ --name $VISITS_SERVICE \ --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
Aggiungere associazioni al gateway API. Usare il comando seguente per restituire l'URL dell'applicazione front-end e quindi aprire questo percorso nel browser:
az containerapp update \ --resource-group $RESOURCE_GROUP \ --name $API_GATEWAY \ --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT \ --query properties.configuration.ingress.fqdn
Verificare lo stato dell'app
Usare la procedura seguente per verificare lo stato dell'app:
Usando l'URL restituito dal comando del
az containerapp update
gateway API, visualizzare l'applicazione front-end nel browser. L'applicazione dovrebbe essere simile allo screenshot seguente:Visualizzare il dashboard del server Eureka attenendosi alla procedura seguente:
Importante
Per visualizzare il dashboard di Eureka Server e l'amministratore per Spring, è necessario avere almeno il ruolo assegnato all'account
Microsoft.App/managedEnvironments/write
nella risorsa dell'ambiente gestito. È possibile assegnare in modo esplicito ilOwner
ruolo oContributor
nella risorsa. È anche possibile seguire la procedura per creare una definizione di ruolo personalizzata e assegnarla all'account.Eseguire il comando seguente per restituire l'URL del dashboard:
az containerapp env java-component eureka-server-for-spring show \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_SERVER_COMPONENT \ --environment $CONTAINER_APP_ENVIRONMENT \ --query properties.ingress.fqdn
Aprire l'URL nel browser. Verrà visualizzata un'applicazione simile allo screenshot seguente:
Per visualizzare l'amministratore per spring dashboard, seguire questa procedura:
Usare il comando seguente per restituire l'URL del dashboard:
az containerapp env java-component admin-for-spring show \ --resource-group $RESOURCE_GROUP \ --name $ADMIN_SERVER_COMPONENT \ --environment $CONTAINER_APP_ENVIRONMENT \ --query properties.ingress.fqdn
Aprire l'URL nel browser. Verrà visualizzata un'applicazione simile allo screenshot seguente:
Facoltativo: configurare i componenti Java
È possibile configurare i componenti Java creati in questa guida introduttiva tramite il portale di Azure usando la sezione Configurazioni.
Per altre informazioni sulla configurazione dei tre componenti Java creati in questa guida introduttiva, vedere i collegamenti seguenti:
Pulire le risorse
Le risorse create in questa guida introduttiva hanno effetto sulla fattura di Azure. Se non si intende usare questi servizi a lungo termine, usare il comando seguente per rimuovere tutti gli elementi creati in questa guida introduttiva:
az group delete --resource-group $RESOURCE_GROUP