Dela via


Snabbstart: Skapa och distribuera appar till Azure Spring Apps

Kommentar

Basic-, Standard- och Enterprise-planerna kommer att vara inaktuella från och med mitten av mars 2025, med en 3-årig pensionsperiod. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i meddelandet om azure Spring Apps-pensionering.

Standardförbrukningen och den dedikerade planen kommer att vara inaktuell från och med den 30 september 2024, med en fullständig avstängning efter sex månader. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i Migrera Azure Spring Apps Standard-förbrukning och dedikerad plan till Azure Container Apps.

Den här artikeln gäller för: ✔️ Basic/Standard ❌ Enterprise

Den här snabbstarten förklarar hur du skapar och distribuerar Spring-program till Azure Spring Apps med hjälp av Azure CLI.

Förutsättningar

Ladda ned exempelprogrammet

Använd följande steg för att ladda ned exempelappen. Om du har använt Azure Cloud Shell växlar du till en lokal kommandotolk.

  1. Skapa en ny mapp och klona exempelapplagringsplatsen.

    mkdir source-code
    
    cd source-code
    
    git clone https://github.com/Azure-Samples/azure-spring-apps-samples
    
  2. Gå till lagringsplatsens katalog.

    cd azure-spring-apps-samples
    

Distribuera PlanetWeatherProvider

Använd följande steg för att distribuera PlanetWeatherProvider-projektet.

  1. Skapa en app för PlanetWeatherProvider projektet i din Azure Spring Apps-instans.

    az spring app create --name planet-weather-provider --runtime-version NetCore_31
    

    Om du vill aktivera automatisk tjänstregistrering har du gett appen samma namn som värdet spring.application.name för i projektets appsettings.json-fil :

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

    Det kan ta flera minuter att köra det här kommandot.

  2. Ändra katalogen till projektmappen PlanetWeatherProvider .

    cd steeltoe-sample/src/planet-weather-provider
    
  3. Skapa binärfilerna och .zip-filen som ska distribueras.

    dotnet publish -c release -o ./publish
    

    Dricks

    Projektfilen innehåller följande XML för att paketera binärfilerna i en .zip fil när du har skrivit dem till mappen ./publish :

    <Target Name="Publish-Zip" AfterTargets="Publish">
      <ZipDirectory SourceDirectory="$(PublishDir)" DestinationFile="$(MSBuildProjectDirectory)/publish-deploy-planet.zip" Overwrite="true" />
    </Target>
    
  4. Distribuera projektet till Azure.

    Kontrollera att kommandotolken finns i projektmappen innan du kör följande kommando.

    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
    

    Alternativet --main-entry anger den relativa sökvägen från .zip-filens rotmapp till den .dll fil som innehåller programmets startpunkt. När tjänsten har laddat upp .zip-filen extraherar den alla filer och mappar och försöker sedan köra startpunkten i den angivna .dll filen.

    Det kan ta flera minuter att köra det här kommandot.

Distribuera SolarSystemWeather

Använd följande steg för att distribuera Projektet SolarSystemWeather.

  1. Skapa en annan app i din Azure Spring Apps-instans för projektet.

    az spring app create --name solar-system-weather --runtime-version NetCore_31
    

    solar-system-weather är namnet som anges i SolarSystemWeather projektets appsettings.json-fil .

    Det kan ta flera minuter att köra det här kommandot.

  2. Ändra katalogen till SolarSystemWeather projektet.

    cd ../solar-system-weather
    
  3. Skapa binärfiler och .zip fil som ska distribueras.

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

    Det kan ta flera minuter att köra det här kommandot.

Tilldela offentlig slutpunkt

Innan du testar programmet hämtar du en offentlig slutpunkt för en HTTP GET-begäran till programmet solar-system-weather .

  1. Kör följande kommando för att tilldela slutpunkten.

    az spring app update --name solar-system-weather --assign-endpoint true
    
  2. Kör följande kommando för att hämta slutpunktens URL.

    Windows:

    az spring app show --name solar-system-weather --output table
    

    Linux:

    az spring app show --name solar-system-weather | grep url
    

Testa programmet

Om du vill testa programmet skickar du en GET-begäran till solar-system-weather appen. I en webbläsare navigerar du till den offentliga URL:en med /weatherforecast bifogad. Till exempel: https://servicename-solar-system-weather.azuremicroservices.io/weatherforecast

Utdata är JSON:

[{"Key":"Mercury","Value":"very warm"},{"Key":"Venus","Value":"quite unpleasant"},{"Key":"Mars","Value":"very cool"},{"Key":"Saturn","Value":"a little bit sandy"}]

Det här svaret visar att båda Spring-apparna fungerar. Appen SolarSystemWeather returnerar data som den hämtade från PlanetWeatherProvider appen.

Den här artikeln beskriver hur du skapar och distribuerar Spring-program till Azure Spring Apps. Du kan använda Azure CLI, Plugin-programmet Maven eller Intellij. I den här artikeln beskrivs varje alternativ.

Förutsättningar

Skapa Spring-programmen lokalt

Använd följande kommandon för att klona exempellagringsplatsen, navigera till exempelmappen och skapa sedan projektet.

git clone https://github.com/azure-samples/spring-petclinic-microservices
cd spring-petclinic-microservices
mvn clean package -DskipTests -Denv=cloud

Det tar 5–10 minuter att kompilera projektet. När projektet kompileras bör du ha enskilda JAR-filer för varje tjänst i respektive mappar.

Skapa och distribuera appar i Azure Spring Apps

Använd följande steg för att skapa och distribuera appar i Azure Spring Apps med hjälp av CLI.

  1. Om du inte körde följande kommandon i föregående snabbstarter kör du dem nu för att ange CLI-standardvärdena.

    az configure --defaults group=<resource-group-name> spring=<service-name>
    
  2. Skapa de två spring-kärnprogrammen för PetClinic: api-gateway och 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. Distribuera JAR-filerna som skapades i föregående steg.

    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. Fråga appens status efter distributioner med följande kommando.

    az spring app list --output table
    

    Det här kommandot genererar utdata som liknar följande exempel:

    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                    -
    

Verifiera tjänsterna

Åtkomst api-gateway och customers-service från en webbläsare med den offentliga URL som visades tidigare, i formatet https://<service name>-api-gateway.azuremicroservices.io.

Skärmbild av PetClinic-exempelappen som visar sidan Ägare.

Dricks

Om du vill felsöka distributioner kan du använda följande kommando för att hämta loggströmning i realtid när appen kör az spring app logs --name <app name> --follow.

Distribuera extra appar

Om du vill att PetClinic-appen ska fungera med alla funktioner som adminserver, besök och veterinärer distribuerar du de andra apparna med följande kommandon:

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"

Rensa resurser

Om du planerar att fortsätta arbeta med efterföljande snabbstarter och självstudier kanske du vill lämna dessa resurser på plats. Ta bort resursgruppen när den inte längre behövs, vilket tar bort resurserna i resursgruppen. Om du vill ta bort resursgruppen med hjälp av Azure CLI använder du följande kommandon:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

Nästa steg