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

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.

  1. 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
    
  2. Navigieren Sie zum Repositoryverzeichnis.

    cd azure-spring-apps-samples
    

Bereitstellen von PlanetWeatherProvider

Führen Sie die folgenden Schritte aus, um das PlanetWeatherProvider-Projekt bereitzustellen.

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

  2. Wechseln Sie in das Verzeichnis des Projektordners PlanetWeatherProvider.

    cd steeltoe-sample/src/planet-weather-provider
    
  3. 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>
    
  4. 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.

  1. 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 Projekts SolarSystemWeather angegeben ist.

    Die Ausführung dieses Befehls kann einige Minuten in Anspruch nehmen.

  2. Wechseln Sie in das Verzeichnis des Projekts SolarSystemWeather.

    cd ../solar-system-weather
    
  3. Erstellen Sie die Binärdateien und die ZIP-Datei, die bereitgestellt werden sollen.

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

  1. Führen Sie den folgenden Befehl aus, um den Endpunkt zuzuweisen.

    az spring app update --name solar-system-weather --assign-endpoint true
    
  2. 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

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.

  1. 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>
    
  2. Erstellen Sie die zwei zentralen Spring-Anwendungen für PetClinic: api-gateway und 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. 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"
    
  4. 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.

Screenshot der PetClinic-Beispiel-App, die die Seite „Besitzer“ zeigt.

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

Nächste Schritte