Condividi tramite


Avvio rapido: Creare e distribuire app in Azure Spring Apps

Note

I piani Basic, Standard ed Enterprise sono entrati in un periodo di ritiro il 17 marzo 2025. Per altre informazioni, vedere l'annuncio di ritiro di Azure Spring Apps.

Questo articolo riguarda:✅ Basic/Standard ❎ Enterprise

Questo avvio rapido illustra come creare e distribuire applicazioni Spring in Azure Spring Apps usando l'interfaccia della riga di comando di Azure.

Prerequisiti

Scaricare l'app di esempio

Per scaricare l'app di esempio, seguire questa procedura. Se si usa Azure Cloud Shell, passare a un prompt dei comandi locale.

  1. 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
    
  2. Passare alla directory del repository.

    cd azure-spring-apps-samples
    

Distribuire PlanetWeatherProvider

Seguire questa procedura per distribuire il progetto PlanetWeatherProvider.

  1. Creare un'app per il progetto PlanetWeatherProvider 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 appsettings.json del progetto:

    "spring": {
      "application": {
        "name": "planet-weather-provider"
      }
    }
    

    L'esecuzione di questo comando potrebbe richiedere alcuni minuti.

  2. Cambia directory alla cartella del progetto PlanetWeatherProvider.

    cd steeltoe-sample/src/planet-weather-provider
    
  3. 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>
    
  4. 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 aver caricato il fileZIP, il servizio estrae tutti i file e le cartelle e prova a eseguire il punto di ingresso nel file DLL specificato.

    L'esecuzione di questo comando potrebbe richiedere alcuni minuti.

Distribuire SolarSystemWeather

Seguire la procedura seguente per distribuire il progetto SolarSystemWeather.

  1. 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 SolarSystemWeather del progetto .

    L'esecuzione di questo comando potrebbe richiedere alcuni minuti.

  2. Passare alla directory del progetto SolarSystemWeather.

    cd ../solar-system-weather
    
  3. Creare i file binari e il file ZIP da distribuire.

    dotnet publish -c release -o ./publish
    
  4. 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.

  1. Eseguire il comando seguente per assegnare l'endpoint.

    az spring app update --name solar-system-weather --assign-endpoint true
    
  2. 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
    

Test dell'applicazione

Per testare l'applicazione, inviare una richiesta GET all'app solar-system-weather. In un browser passare all'URL pubblico al quale è stato accodato /weatherforecast. 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 indica che entrambe le app Spring funzionano. L'app SolarSystemWeather restituisce i dati recuperati dall'app PlanetWeatherProvider.

Questo articolo illustra come creare 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 ciascuna alternativa.

Prerequisiti

Compilare le applicazioni Spring in locale

Usare i comandi seguenti per clonare il repository di esempio, passare alla cartella di esempio, 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 circa 5-10 minuti. Una volta che il progetto è compilato, è necessario disporre di singoli file JAR per ogni servizio nelle rispettive cartelle.

Creare e distribuire app in Azure Spring Apps

Seguire la procedura seguente per creare e distribuire app in Azure Spring Apps usando l'interfaccia della riga di comando.

  1. Se non sono stati eseguiti i comandi seguenti negli avvii rapidi precedenti, eseguirli ora per impostare i valori predefiniti dell'interfaccia della riga di comando.

    az configure --defaults group=<resource-group-name> spring=<service-name>
    
  2. Creare le due applicazioni Spring principali per PetClinic: api-gateway e customers-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
    
  3. 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"
    
  4. Eseguire query sullo stato dell'app dopo la distribuzione 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.

Screenshot dell'app di esempio PetClinic che mostra la pagina Proprietari.

Suggerimento

Per risolvere i problemi delle distribuzioni, è possibile usare il comando seguente per ottenere lo streaming dei log in tempo reale ogni volta che l'app è in esecuzione: az spring app logs --name <app name> --follow.

Distribuire app aggiuntive

Per ottenere il funzionamento dell'app PetClinic con tutte le funzionalità come Server amministratore, 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 ..."

Passaggi successivi