Share via


Guida introduttiva: Creare e distribuire app in App Spring di Azure

Nota

Azure Spring Apps è il nuovo nome del servizio Azure Spring Cloud. Anche se il servizio ha un nuovo nome, il nome precedente verrà visualizzato in alcune posizioni per un po' mentre si lavora per aggiornare gli asset, ad esempio screenshot, video e diagrammi.

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

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.

  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 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.

  2. Passare 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 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.

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

    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
    

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

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.

  1. 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>
    
  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 una query sullo stato dell'app dopo le distribuzioni con il comando seguente.

    az spring app list --output table
    

    Questo comando genera un output 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'URLpubblico 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 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 Amministrazione 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 ..."

Passaggi successivi