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
- Slutförande av tidigare snabbstarter i den här serien:
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.
Skapa en ny mapp och klona exempelapplagringsplatsen.
mkdir source-code
cd source-code
git clone https://github.com/Azure-Samples/azure-spring-apps-samples
Gå till lagringsplatsens katalog.
cd azure-spring-apps-samples
Distribuera PlanetWeatherProvider
Använd följande steg för att distribuera PlanetWeatherProvider-projektet.
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.
Ändra katalogen till projektmappen
PlanetWeatherProvider
.cd steeltoe-sample/src/planet-weather-provider
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>
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.
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 iSolarSystemWeather
projektets appsettings.json-fil .Det kan ta flera minuter att köra det här kommandot.
Ändra katalogen till
SolarSystemWeather
projektet.cd ../solar-system-weather
Skapa binärfiler och .zip fil som ska distribueras.
dotnet publish -c release -o ./publish
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
.
Kör följande kommando för att tilldela slutpunkten.
az spring app update --name solar-system-weather --assign-endpoint true
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
- Slutförande av tidigare snabbstarter i den här serien:
- JDK 17
- Maven 3.0 eller senare
- En Azure-prenumeration Om du inte har någon prenumeration skapar du ett kostnadsfritt konto innan du börjar.
- Du kan också använda Azure CLI version 2.45.0 eller senare. Installera Azure Spring Apps-tillägget med följande kommando:
az extension add --name spring
- Du kan också använda Azure Toolkit for IntelliJ.
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.
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>
Skapa de två spring-kärnprogrammen för PetClinic:
api-gateway
ochcustomers-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
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"
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
.
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 ..."