Quickstart: Apps bouwen en implementeren in Azure Spring Apps
Notitie
De Basic-, Standard- en Enterprise-abonnementen worden afgeschaft vanaf medio maart 2025, met een pensioenperiode van 3 jaar. We raden u aan om over te stappen naar Azure Container Apps. Zie de aankondiging over buitengebruikstelling van Azure Spring Apps voor meer informatie.
Het standaardverbruik en het speciale abonnement worden vanaf 30 september 2024 afgeschaft, met een volledige afsluiting na zes maanden. We raden u aan om over te stappen naar Azure Container Apps. Zie Azure Spring Apps Standard-verbruik en toegewezen abonnement migreren naar Azure Container Apps voor meer informatie.
Dit artikel is van toepassing op: ✔️ Basic/Standard ❌ Enterprise
In deze quickstart wordt uitgelegd hoe u Spring-toepassingen bouwt en implementeert in Azure Spring Apps met behulp van de Azure CLI.
Vereisten
- Voltooiing van de vorige quickstarts in deze reeks:
De voorbeeld-app downloaden
Gebruik de volgende stappen om de voorbeeld-app te downloaden. Als u De Azure Cloud Shell hebt gebruikt, schakelt u over naar een lokale opdrachtprompt.
Maak een nieuwe map en kloon de opslagplaats van de voorbeeld-app.
mkdir source-code
cd source-code
git clone https://github.com/Azure-Samples/azure-spring-apps-samples
Navigeer naar de map van de opslagplaats.
cd azure-spring-apps-samples
PlanetWeatherProvider implementeren
Gebruik de volgende stappen om het PlanetWeatherProvider-project te implementeren.
Maak een app voor het
PlanetWeatherProvider
project in uw Azure Spring Apps-exemplaar.az spring app create --name planet-weather-provider --runtime-version NetCore_31
Als u automatische serviceregistratie wilt inschakelen, hebt u de app dezelfde naam gegeven als de waarde in het appsettings.json-bestand van
spring.application.name
het project:"spring": { "application": { "name": "planet-weather-provider" } }
Het uitvoeren van deze opdracht kan enkele minuten duren.
Wijzig de map in de projectmap van
PlanetWeatherProvider
.cd steeltoe-sample/src/planet-weather-provider
Maak de binaire bestanden en het ZIP-bestand dat moet worden geïmplementeerd.
dotnet publish -c release -o ./publish
Tip
Het projectbestand bevat de volgende XML om de binaire bestanden in een ZIP-bestand te verpakken nadat ze naar de map ./publish zijn geschreven:
<Target Name="Publish-Zip" AfterTargets="Publish"> <ZipDirectory SourceDirectory="$(PublishDir)" DestinationFile="$(MSBuildProjectDirectory)/publish-deploy-planet.zip" Overwrite="true" /> </Target>
Implementeer het project in Azure.
Zorg ervoor dat de opdrachtprompt zich in de projectmap bevindt voordat u de volgende opdracht uitvoert.
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
Met de optie
--main-entry
geeft u het relatieve pad op vanaf de hoofdmap van het . ZIP-bestand naar het DLL-bestand met het beginpunt van de toepassing. Nadat de service het .zip-bestand heeft geüpload, worden alle bestanden en mappen geëxtraheerd en wordt vervolgens geprobeerd het invoerpunt uit te voeren in het opgegeven .dll-bestand .Het uitvoeren van deze opdracht kan enkele minuten duren.
SolarSystemWeather implementeren
Gebruik de volgende stappen om het SolarSystemWeather-project te implementeren.
Maak een andere app in uw Azure Spring Apps-exemplaar voor het project.
az spring app create --name solar-system-weather --runtime-version NetCore_31
solar-system-weather
is de naam die is opgegeven in het bestand appsettings.json van het projectSolarSystemWeather
.Het uitvoeren van deze opdracht kan enkele minuten duren.
Wijzig de map in de map van het project
SolarSystemWeather
.cd ../solar-system-weather
Maak de binaire bestanden en het ZIP-bestand dat u wilt implementeren.
dotnet publish -c release -o ./publish
Implementeer het project 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
Het uitvoeren van deze opdracht kan enkele minuten duren.
Openbaar eindpunt toewijzen
Voordat u de toepassing test, moet u een openbaar eindpunt voor een HTTP GET-aanvraag voor de solar-system-weather
toepassing ophalen.
Voer de volgende opdracht uit om het eindpunt toe te wijzen.
az spring app update --name solar-system-weather --assign-endpoint true
Voer de volgende opdracht uit om de URL van het eindpunt op te halen.
Windows:
az spring app show --name solar-system-weather --output table
Linux:
az spring app show --name solar-system-weather | grep url
De toepassing testen
Als u de toepassing wilt testen, verzendt u een GET-aanvraag naar de solar-system-weather
app. Navigeer in een browser naar de openbare URL waaraan /weatherforecast
deze is toegevoegd. Bijvoorbeeld: https://servicename-solar-system-weather.azuremicroservices.io/weatherforecast
De uitvoer is JSON:
[{"Key":"Mercury","Value":"very warm"},{"Key":"Venus","Value":"quite unpleasant"},{"Key":"Mars","Value":"very cool"},{"Key":"Saturn","Value":"a little bit sandy"}]
In dit antwoord ziet u dat beide Spring-apps werken. De app SolarSystemWeather
retourneert gegevens die zijn opgehaald uit de app PlanetWeatherProvider
.
In dit artikel wordt uitgelegd hoe u Spring-toepassingen bouwt en implementeert in Azure Spring Apps. U kunt Azure CLI, de Maven-invoegtoepassing of Intellij gebruiken. In dit artikel wordt elk alternatief beschreven.
Vereisten
- Voltooiing van de vorige quickstarts in deze reeks:
- JDK 17
- Maven 3.0 of hoger
- Een Azure-abonnement. Als u geen abonnement hebt, maakt u een gratis account voordat u begint.
- Optioneel, Azure CLI versie 2.45.0 of hoger. Installeer de Azure Spring Apps-extensie met de volgende opdracht:
az extension add --name spring
- Optioneel, de Azure-toolkit voor IntelliJ.
Spring-toepassingen lokaal bouwen
Gebruik de volgende opdrachten om de voorbeeldopslagplaats te klonen, naar de voorbeeldmap te gaan en vervolgens het project te bouwen.
git clone https://github.com/azure-samples/spring-petclinic-microservices
cd spring-petclinic-microservices
mvn clean package -DskipTests -Denv=cloud
Het compileren van het project duurt 5-10 minuten. Wanneer het project is gecompileerd, moet u afzonderlijke JAR-bestanden voor elke service in hun respectieve mappen hebben.
Apps maken en implementeren in Azure Spring Apps
Gebruik de volgende stappen om apps te maken en te implementeren in Azure Spring Apps met behulp van de CLI.
Als u de volgende opdrachten in de vorige quickstarts niet hebt uitgevoerd, voert u deze nu uit om de CLI-standaardwaarden in te stellen.
az configure --defaults group=<resource-group-name> spring=<service-name>
Maak de twee kern spring-toepassingen voor PetClinic:
api-gateway
encustomers-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
Implementeer de JAR-bestanden die in de vorige stap zijn gebouwd.
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"
Voer een query uit voor de app-status na implementaties met de volgende opdracht.
az spring app list --output table
Met deze opdracht wordt uitvoer geproduceerd die vergelijkbaar is met het volgende voorbeeld:
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 -
De services controleren
Open api-gateway
en customers-service
vanuit een browser met de openbare URL die eerder werd weergegeven, in de indeling van https://<service name>-api-gateway.azuremicroservices.io
.
Tip
Als u problemen met implementaties wilt oplossen, kunt u de volgende opdracht gebruiken om logboeken in realtime te streamen wanneer de app wordt uitgevoerd az spring app logs --name <app name> --follow
.
Extra apps implementeren
Als u wilt dat de PetClinic-app werkt met alle functies zoals Beheerserver, Bezoeken en Dierenartsen, implementeert u de andere apps met de volgende opdrachten:
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"
Resources opschonen
Als u van plan bent om verder te gaan met volgende snelstarts en zelfstudies, kunt u deze resources het beste intact laten. Als u de resourcegroep niet meer nodig hebt, verwijdert u deze. Hierdoor worden ook de resources in de resourcegroep verwijderd. Als u de resourcegroep wilt verwijderen met behulp van Azure CLI, gebruikt u de volgende opdrachten:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."