Schnellstart: Erstellen und Bereitstellen von Apps in Azure Spring Apps
Hinweis
Die Pläne Basic, Standard und Enterprise gelten ab Mitte März 2025 als veraltet und werden über einen Zeitraum von 3 Jahren eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie in der Ankündigung zur Einstellung von Azure Spring Apps.
Der Standardverbrauchs- und dedizierte Plan wird ab dem 30. September 2024 als veraltet gekennzeichnet und nach sechs Monaten vollständig eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie unter Migrieren vom Standardverbrauchs- und dedizierten Plan von Azure Spring Apps zu Azure Container Apps.
Dieser Artikel gilt für: ✔️ Basic/Standard ❌ Enterprise
In dieser Schnellstartanleitung wird erläutert, wie Sie Spring-Anwendungen mithilfe der Azure CLI erstellen und in Azure Spring Apps bereitstellen.
Voraussetzungen
- Abschluss der vorherigen Schnellstartanleitungen in dieser Serie:
Herunterladen der Beispiel-App
Verwenden Sie die folgenden Schritte, um die Beispiel-App herunterzuladen. Wenn Sie bisher Azure Cloud Shell verwendet haben, wechseln Sie zu einer lokalen Eingabeaufforderung.
Erstellen Sie einen neuen Ordner, und klonen Sie das Beispiel-App-Repository.
mkdir source-code
cd source-code
git clone https://github.com/Azure-Samples/azure-spring-apps-samples
Navigieren Sie zum Repositoryverzeichnis.
cd azure-spring-apps-samples
Bereitstellen von PlanetWeatherProvider
Führen Sie die folgenden Schritte aus, um das PlanetWeatherProvider-Projekt bereitzustellen.
Erstellen Sie in Ihrer Azure Spring Apps-Instanz eine App für das
PlanetWeatherProvider
-Projekt.az spring app create --name planet-weather-provider --runtime-version NetCore_31
Um die automatische Dienstregistrierung zu aktivieren, haben Sie der App den gleichen Namen geben wie den Wert von
spring.application.name
in der Datei appsettings.json des Projekts:"spring": { "application": { "name": "planet-weather-provider" } }
Die Ausführung dieses Befehls kann einige Minuten in Anspruch nehmen.
Wechseln Sie in das Verzeichnis des Projektordners
PlanetWeatherProvider
.cd steeltoe-sample/src/planet-weather-provider
Erstellen Sie die Binärdateien und die ZIP-Datei, die bereitgestellt werden sollen.
dotnet publish -c release -o ./publish
Tipp
Die Projektdatei enthält den folgenden XML-Code zum Verpacken der Binärdateien in einer ZIP-Datei, nachdem diese in den Ordner ./publish geschrieben wurden:
<Target Name="Publish-Zip" AfterTargets="Publish"> <ZipDirectory SourceDirectory="$(PublishDir)" DestinationFile="$(MSBuildProjectDirectory)/publish-deploy-planet.zip" Overwrite="true" /> </Target>
Stellen Sie das Projekt in Azure bereit.
Stellen Sie sicher, dass sich die Eingabeaufforderung im Projektordner befindet, bevor Sie den folgenden Befehl ausführen.
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
Die Option
--main-entry
gibt den relativen Pfad vom Stammordner der ZIP-Datei zur DLL-Datei an, die den Einstiegspunkt der Anwendung enthält. Nachdem der Dienst die ZIP-Datei hochgeladen hat, werden alle Dateien und Ordner extrahiert, und es wird versucht, den Einstiegspunkt in der angegebenen DLL-Datei auszuführen.Die Ausführung dieses Befehls kann einige Minuten in Anspruch nehmen.
Bereitstellen von SolarSystemWeather
Führen Sie die folgenden Schritte aus, um das SolarSystemWeather-Projekt bereitzustellen.
Erstellen Sie in Ihrer Azure Spring Apps-Instanz eine weitere App für das Projekt.
az spring app create --name solar-system-weather --runtime-version NetCore_31
solar-system-weather
ist der Name, der in der Datei appsettings.json des ProjektsSolarSystemWeather
angegeben ist.Die Ausführung dieses Befehls kann einige Minuten in Anspruch nehmen.
Wechseln Sie in das Verzeichnis des Projekts
SolarSystemWeather
.cd ../solar-system-weather
Erstellen Sie die Binärdateien und die ZIP-Datei, die bereitgestellt werden sollen.
dotnet publish -c release -o ./publish
Stellen Sie das Projekt in Azure bereit.
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
Die Ausführung dieses Befehls kann einige Minuten in Anspruch nehmen.
Zuweisen eines öffentlichen Endpunkts
Rufen Sie vor dem Testen der Anwendung einen öffentlichen Endpunkt für eine HTTP GET-Anforderung an die solar-system-weather
-Anwendung ab.
Führen Sie den folgenden Befehl aus, um den Endpunkt zuzuweisen.
az spring app update --name solar-system-weather --assign-endpoint true
Führen Sie zum Abrufen der URL des Endpunkts den folgenden Befehl aus.
Windows:
az spring app show --name solar-system-weather --output table
Linux:
az spring app show --name solar-system-weather | grep url
Testen der Anwendung
Senden Sie zum Testen der Anwendung eine GET-Anforderung an die solar-system-weather
-App. Navigieren Sie in einem Browser zu der öffentlichen URL, an die Sie /weatherforecast
angefügt haben. Beispiel: https://servicename-solar-system-weather.azuremicroservices.io/weatherforecast
Die Ausgabe liegt im JSON-Format vor:
[{"Key":"Mercury","Value":"very warm"},{"Key":"Venus","Value":"quite unpleasant"},{"Key":"Mars","Value":"very cool"},{"Key":"Saturn","Value":"a little bit sandy"}]
Diese Antwort zeigt, dass beide Spring-Apps funktionieren. Die App SolarSystemWeather
gibt Daten zurück, die sie aus der App PlanetWeatherProvider
abgerufen hat.
In diesem Artikel wird erläutert, wie Sie Spring-Anwendungen erstellen und in Azure Spring Apps bereitstellen. Sie können Azure CLI, das Maven-Plug-In oder Intellij verwenden. In diesem Artikel werden alle diese Alternativen beschrieben.
Voraussetzungen
- Abschluss der vorherigen Schnellstartanleitungen in dieser Serie:
- JDK 17
- Maven 3.0 oder höher
- Ein Azure-Abonnement. Wenn Sie kein Abonnement besitzen, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.
- Optional Azure CLI, Version 2.45.0 oder höher. Führen Sie den folgenden Befehl aus, um die Azure Spring Apps-Erweiterung für die Azure CLI zu installieren:
az extension add --name spring
- Optional, des Azure-Toolkits für IntelliJ.
Lokales Erstellen der Spring-Anwendungen
Verwenden Sie die folgenden Befehle, um das Beispielrepository zu klonen, zum Beispielordner zu navigieren und dann das Projekt zu erstellen.
git clone https://github.com/azure-samples/spring-petclinic-microservices
cd spring-petclinic-microservices
mvn clean package -DskipTests -Denv=cloud
Die Kompilierung des Projekts dauert fünf bis zehn Minuten. Nach der Kompilierung des Projekts sollten in den entsprechenden Ordner einzelne JAR-Dateien für jeden Dienst vorhanden sein.
Erstellen und Bereitstellen von Apps in Azure Spring Apps
Führen Sie die folgenden Schritte aus, um Apps in Azure Spring Apps zu erstellen und mithilfe der CLI bereitzustellen.
Falls Sie die folgenden Befehle in den vorherigen Schnellstartanleitungen nicht ausgeführt haben, führen Sie sie jetzt aus, um die CLI-Standardwerte festzulegen.
az configure --defaults group=<resource-group-name> spring=<service-name>
Erstellen Sie die zwei zentralen Spring-Anwendungen für PetClinic:
api-gateway
undcustomers-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
Stellen Sie die im vorherigen Schritt erstellten JAR-Dateien bereit.
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"
Fragen Sie den App-Status nach der Bereitstellung mit dem folgenden Befehl ab.
az spring app list --output table
Dieser Befehl erzeugt eine Ausgabe ähnlich wie im folgenden Beispiel:
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 -
Überprüfen der Dienste
Greifen Sie in einem Browser über die zuvor gezeigte öffentliche URL im Format https://<service name>-api-gateway.azuremicroservices.io
auf api-gateway
und customers-service
zu.
Tipp
Zum Beheben von Problemen bei der Bereitstellung können Sie den folgenden Befehl verwenden, um Protokollstreaming in Echtzeit zu erhalten, wenn die App ausgeführt wird: az spring app logs --name <app name> --follow
.
Bereitstellen zusätzlicher Apps
Damit die PetClinic-App mit allen Features wie Verwaltungsserver, Besuche und Tierärzte funktioniert, stellen Sie die anderen Apps mit den folgenden Befehlen bereit:
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"
Bereinigen von Ressourcen
Falls Sie mit weiteren Schnellstartanleitungen und Tutorials fortfahren möchten, sollten Sie die Ressourcen nicht bereinigen. Wenn Sie die Ressourcen nicht mehr benötigen, löschen Sie die Ressourcengruppe. Dadurch werden die Ressourcen in der Ressourcengruppe gelöscht. Wenn Sie die Ressourcengruppe mithilfe der Azure CLI löschen möchten, verwenden Sie die folgenden Befehle:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."