Guida introduttiva: Creare e distribuire app in App Spring di Azure
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: ✔️ Basic/Standard ❌ Enterprise
Questa guida introduttiva illustra come compilare e distribuire applicazioni Spring in Azure Spring Apps usando l'interfaccia della riga di comando di Azure.
Prerequisiti
- Completamento delle guide introduttive precedenti in questa serie:
- Effettuare il provisioning di un'istanza del servizio Azure Spring Apps.
- Configurare il server di configurazione di Azure Spring Apps.
Scaricare l'app di esempio
Usare la procedura seguente per scaricare l'app di esempio. Se si usa Azure Cloud Shell, passare a un prompt dei comandi locale.
Creare una nuova cartella e clonare il repository dell'app di esempio.
mkdir source-code
cd source-code
git clone https://github.com/Azure-Samples/azure-spring-apps-samples
Passare alla directory del repository.
cd azure-spring-apps-samples
Distribuire PlanetWeatherProvider
Seguire questa procedura per distribuire il progetto PlanetWeatherProvider.
Creare un'app per il
PlanetWeatherProvider
progetto nell'istanza di Azure Spring Apps.az spring app create --name planet-weather-provider --runtime-version NetCore_31
Per abilitare la registrazione automatica del servizio, è stato assegnato all'app lo stesso nome del valore di
spring.application.name
nel file di appsettings.json del progetto:"spring": { "application": { "name": "planet-weather-provider" } }
L'esecuzione di questo comando potrebbe richiedere alcuni minuti.
Passare alla cartella del progetto
PlanetWeatherProvider
.cd steeltoe-sample/src/planet-weather-provider
Creare i file binari e il file ZIP da distribuire.
dotnet publish -c release -o ./publish
Suggerimento
Il file di progetto contiene il codice XML seguente per inserire i file binari in un file ZIP dopo averli scritti nella cartella ./publish:
<Target Name="Publish-Zip" AfterTargets="Publish"> <ZipDirectory SourceDirectory="$(PublishDir)" DestinationFile="$(MSBuildProjectDirectory)/publish-deploy-planet.zip" Overwrite="true" /> </Target>
Distribuire il progetto in Azure.
Prima di eseguire il comando seguente, verificare che il prompt dei comandi sia nella cartella del progetto.
az spring app deploy \ --name planet-weather-provider \ --runtime-version NetCore_31 \ --main-entry Microsoft.Azure.SpringCloud.Sample.PlanetWeatherProvider.dll \ --artifact-path ./publish-deploy-planet.zip
L'opzione
--main-entry
specifica il percorso relativo dalla cartella radice del file ZIP al file DLL che contiene il punto di ingresso dell'applicazione. Dopo che il servizio carica il file .zip, estrae tutti i file e le cartelle e quindi tenta di eseguire il punto di ingresso nel file di .dll specificato.L'esecuzione di questo comando potrebbe richiedere alcuni minuti.
Distribuire SolarSystemWeather
Usare la procedura seguente per distribuire il progetto SolarSystemWeather.
Creare un'altra app nell'istanza di Azure Spring Apps per il progetto.
az spring app create --name solar-system-weather --runtime-version NetCore_31
solar-system-weather
è il nome specificato nel file appsettings.json del progettoSolarSystemWeather
.L'esecuzione di questo comando potrebbe richiedere alcuni minuti.
Passare alla directory del progetto
SolarSystemWeather
.cd ../solar-system-weather
Creare i file binari e il file ZIP da distribuire.
dotnet publish -c release -o ./publish
Distribuire il progetto in Azure.
az spring app deploy \ --name solar-system-weather \ --runtime-version NetCore_31 \ --main-entry Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.dll \ --artifact-path ./publish-deploy-solar.zip
L'esecuzione di questo comando potrebbe richiedere alcuni minuti.
Assegnare l'endpoint pubblico
Prima di testare l'applicazione, ottenere un endpoint pubblico per una richiesta HTTP GET all'applicazione solar-system-weather
.
Eseguire il comando seguente per assegnare l'endpoint.
az spring app update --name solar-system-weather --assign-endpoint true
Eseguire il comando seguente per ottenere l'URL dell'endpoint.
Windows:
az spring app show --name solar-system-weather --output table
Linux:
az spring app show --name solar-system-weather | grep url
Testare l'applicazione
Per testare l'applicazione, inviare una richiesta GET all'app solar-system-weather
. In un browser passare all'URL pubblico con /weatherforecast
accodato. Ad esempio: https://servicename-solar-system-weather.azuremicroservices.io/weatherforecast
L'output è in formato JSON:
[{"Key":"Mercury","Value":"very warm"},{"Key":"Venus","Value":"quite unpleasant"},{"Key":"Mars","Value":"very cool"},{"Key":"Saturn","Value":"a little bit sandy"}]
Questa risposta mostra che entrambe le app Spring funzionano. L'app SolarSystemWeather
restituisce i dati recuperati dall'app PlanetWeatherProvider
.
Questo articolo illustra come compilare e distribuire applicazioni Spring in Azure Spring Apps. È possibile usare l'interfaccia della riga di comando di Azure, il plug-in Maven o Intellij. Questo articolo descrive ogni alternativa.
Prerequisiti
- Completamento delle guide introduttive precedenti in questa serie:
- Effettuare il provisioning di un'istanza del servizio Azure Spring Apps.
- Configurare il server di configurazione di Azure Spring Apps.
- JDK 17
- Maven 3.0 o versione successiva
- Una sottoscrizione di Azure. Se non si ha già una sottoscrizione, creare un account gratuito prima di iniziare.
- Facoltativamente, l'interfaccia della riga di comando di Azure versione 2.45.0 o successiva. Installare l'estensione Azure Spring Apps con il comando seguente:
az extension add --name spring
- Facoltativamente, Azure Toolkit for IntelliJ.
Compilare le applicazioni Spring in locale
Usare i comandi seguenti per clonare il repository di esempio, passare alla cartella di esempio e quindi compilare il progetto.
git clone https://github.com/azure-samples/spring-petclinic-microservices
cd spring-petclinic-microservices
mvn clean package -DskipTests -Denv=cloud
La compilazione del progetto richiede 5-10 minuti. Quando il progetto viene compilato, è necessario avere singoli file JAR per ogni servizio nelle rispettive cartelle.
Creare e distribuire app in Azure Spring Apps
Usare la procedura seguente per creare e distribuire app in Azure Spring Apps usando l'interfaccia della riga di comando.
Se non sono stati eseguiti i comandi seguenti nelle guide introduttive precedenti, eseguirli ora per impostare le impostazioni predefinite dell'interfaccia della riga di comando.
az configure --defaults group=<resource-group-name> spring=<service-name>
Creare le due applicazioni Spring principali per PetClinic:
api-gateway
ecustomers-service
.az spring app create \ --name api-gateway \ --runtime-version Java_17 \ --instance-count 1 \ --memory 2Gi \ --assign-endpoint az spring app create \ --name customers-service \ --runtime-version Java_17 \ --instance-count 1 \ --memory 2Gi
Distribuire i file JAR compilati nel passaggio precedente.
az spring app deploy \ --name api-gateway \ --artifact-path spring-petclinic-api-gateway/target/api-gateway-3.0.1.jar \ --jvm-options="-Xms2048m -Xmx2048m" az spring app deploy \ --name customers-service \ --artifact-path spring-petclinic-customers-service/target/customers-service-3.0.1.jar \ --jvm-options="-Xms2048m -Xmx2048m"
Eseguire una query sullo stato dell'app dopo le distribuzioni con il comando seguente.
az spring app list --output table
L'output generato dal comando sarà simile all'esempio seguente:
Name Location ResourceGroup Production Deployment Public Url Provisioning Status CPU Memory Running Instance Registered Instance Persistent Storage ----------------- ---------- --------------- ----------------------- --------------------------------------------------- --------------------- ----- -------- ------------------ --------------------- -------------------- api-gateway eastus xxxxxx-sp default https://<service name>-api-gateway.azuremicroservices.io Succeeded 1 2 1/1 1/1 - customers-service eastus <service name> default Succeeded 1 2 1/1 1/1 -
Verificare i servizi
Accesso api-gateway
e customers-service
da un browser con l'URL pubblico illustrato in precedenza, nel formato di https://<service name>-api-gateway.azuremicroservices.io
.
Suggerimento
Per risolvere i problemi relativi alle distribuzioni, è possibile usare il comando seguente per ottenere lo streaming dei log in tempo reale ogni volta che l'app esegue az spring app logs --name <app name> --follow
.
Distribuire app aggiuntive
Per ottenere il funzionamento dell'app PetClinic con tutte le funzionalità come Admin Server, Visite e Veterinari, distribuire le altre app con i comandi seguenti:
az spring app create \
--name admin-server \
--runtime-version Java_17 \
--instance-count 1 \
--memory 2Gi \
--assign-endpoint
az spring app create \
--name vets-service \
--runtime-version Java_17 \
--instance-count 1 \
--memory 2Gi
az spring app create \
--name visits-service \
--runtime-version Java_17 \
--instance-count 1 \
--memory 2Gi
az spring app deploy \
--name admin-server \
--runtime-version Java_17 \
--artifact-path spring-petclinic-admin-server/target/admin-server-3.0.1.jar \
--jvm-options="-Xms1536m -Xmx1536m"
az spring app deploy \
--name vets-service \
--runtime-version Java_17 \
--artifact-path spring-petclinic-vets-service/target/vets-service-3.0.1.jar \
--jvm-options="-Xms1536m -Xmx1536m"
az spring app deploy \
--name visits-service \
--runtime-version Java_17 \
--artifact-path spring-petclinic-visits-service/target/visits-service-3.0.1.jar \
--jvm-options="-Xms1536m -Xmx1536m"
Pulire le risorse
Se si prevede di usare le guide di avvio rapido e le esercitazioni successive, è consigliabile non cancellare le risorse create. Quando non è più necessario, eliminare il gruppo di risorse per eliminare tutte le risorse contenute al suo interno. Per eliminare il gruppo di risorse usando l'interfaccia della riga di comando di Azure, usare i comandi seguenti:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."