Szybki start: tworzenie i wdrażanie aplikacji w usłudze Azure Spring Apps

Uwaga

Azure Spring Apps to nowa nazwa usługi Azure Spring Cloud. Mimo że usługa ma nową nazwę, stara nazwa będzie widoczna w niektórych miejscach przez pewien czas, ponieważ pracujemy nad aktualizowaniem zasobów, takich jak zrzuty ekranu, filmy wideo i diagramy.

Ten artykuł dotyczy: ✔️ Podstawowa/Standardowa ❌ Enterprise

W tym przewodniku Szybki start wyjaśniono, jak kompilować i wdrażać aplikacje Spring w usłudze Azure Spring Apps przy użyciu interfejsu wiersza polecenia platformy Azure.

Wymagania wstępne

Pobieranie przykładowej aplikacji

Aby pobrać przykładową aplikację, wykonaj następujące kroki. Jeśli używasz usługi Azure Cloud Shell, przejdź do lokalnego wiersza polecenia.

  1. Utwórz nowy folder i sklonuj przykładowe repozytorium aplikacji.

    mkdir source-code
    
    cd source-code
    
    git clone https://github.com/Azure-Samples/azure-spring-apps-samples
    
  2. Przejdź do katalogu repozytorium.

    cd azure-spring-apps-samples
    

Wdrażanie dostawcy PlanetWeatherProvider

Wykonaj poniższe kroki, aby wdrożyć projekt PlanetWeatherProvider.

  1. Utwórz aplikację dla projektu w wystąpieniu PlanetWeatherProvider usługi Azure Spring Apps.

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

    Aby włączyć automatyczną rejestrację usługi, nadano aplikacji taką samą nazwę jak wartość spring.application.name w pliku appsettings.json projektu:

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

    Uruchomienie tego polecenia może potrwać kilka minut.

  2. Zmień katalog na PlanetWeatherProvider folder projektu.

    cd steeltoe-sample/src/planet-weather-provider
    
  3. Utwórz pliki binarne i plik .zip do wdrożenia.

    dotnet publish -c release -o ./publish
    

    Napiwek

    Plik projektu zawiera następujący kod XML do spakowania plików binarnych w pliku .zip po zapisaniu ich w folderze ./publish :

    <Target Name="Publish-Zip" AfterTargets="Publish">
      <ZipDirectory SourceDirectory="$(PublishDir)" DestinationFile="$(MSBuildProjectDirectory)/publish-deploy-planet.zip" Overwrite="true" />
    </Target>
    
  4. Wdrożyć projekt na platformie Azure.

    Przed uruchomieniem następującego polecenia upewnij się, że wiersz polecenia znajduje się w folderze projektu.

    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
    

    Opcja --main-entry określa ścieżkę względną z folderu głównego pliku .zip do pliku .dll , który zawiera punkt wejścia aplikacji. Po przekazaniu pliku .zip usługa wyodrębnia wszystkie pliki i foldery, a następnie próbuje wykonać punkt wejścia w określonym pliku .dll .

    Uruchomienie tego polecenia może potrwać kilka minut.

Wdrażanie rozwiązania SolarSystemWeather

Wykonaj poniższe kroki, aby wdrożyć projekt SolarSystemWeather.

  1. Utwórz inną aplikację w wystąpieniu usługi Azure Spring Apps dla projektu.

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

    solar-system-weatherto nazwa określona w SolarSystemWeather pliku appsettings.json projektu.

    Uruchomienie tego polecenia może potrwać kilka minut.

  2. Zmień katalog na SolarSystemWeather projekt.

    cd ../solar-system-weather
    
  3. Utwórz pliki binarne i .zip do wdrożenia.

    dotnet publish -c release -o ./publish
    
  4. Wdrożyć projekt na platformie 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
    

    Uruchomienie tego polecenia może potrwać kilka minut.

Przypisywanie publicznego punktu końcowego

Przed przetestowaniem aplikacji pobierz publiczny punkt końcowy dla żądania HTTP GET do solar-system-weather aplikacji.

  1. Uruchom następujące polecenie, aby przypisać punkt końcowy.

    az spring app update --name solar-system-weather --assign-endpoint true
    
  2. Uruchom następujące polecenie, aby uzyskać adres URL punktu końcowego.

    Windows:

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

    Linux:

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

Testowanie aplikacji

Aby przetestować aplikację, wyślij żądanie GET do solar-system-weather aplikacji. W przeglądarce przejdź do publicznego adresu URL z /weatherforecast dołączonym do niego adresem URL. Na przykład: https://servicename-solar-system-weather.azuremicroservices.io/weatherforecast.

Dane wyjściowe to JSON:

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

Ta odpowiedź pokazuje, że obie aplikacje Spring działają. Aplikacja SolarSystemWeather zwraca dane pobrane z PlanetWeatherProvider aplikacji.

W tym artykule wyjaśniono, jak tworzyć i wdrażać aplikacje Spring w usłudze Azure Spring Apps. Możesz użyć interfejsu wiersza polecenia platformy Azure, wtyczki Maven lub intellij. W tym artykule opisano każdą alternatywę.

Wymagania wstępne

Lokalne kompilowanie aplikacji Spring

Użyj następujących poleceń, aby sklonować przykładowe repozytorium, przejść do folderu przykładowego, a następnie skompilować projekt.

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

Kompilowanie projektu trwa od 5 do 10 minut. Po skompilowaniu projektu powinny istnieć pojedyncze pliki JAR dla każdej usługi w odpowiednich folderach.

Tworzenie i wdrażanie aplikacji w usłudze Azure Spring Apps

Wykonaj poniższe kroki, aby utworzyć i wdrożyć aplikacje w usłudze Azure Spring Apps przy użyciu interfejsu wiersza polecenia.

  1. Jeśli w poprzednich przewodnikach Szybki start nie uruchomiono następujących poleceń, uruchom je teraz, aby ustawić wartości domyślne interfejsu wiersza polecenia.

    az configure --defaults group=<resource-group-name> spring=<service-name>
    
  2. Utwórz dwie podstawowe aplikacje Spring dla aplikacji PetClinic: api-gateway i 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. Wdróż pliki JAR wbudowane w poprzednim kroku.

    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. Wykonaj zapytanie o stan aplikacji po wdrożeniu za pomocą następującego polecenia.

    az spring app list --output table
    

    To polecenie generuje dane wyjściowe podobne do następującego przykładu:

    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                    -
    

Weryfikowanie usług

Uzyskaj dostęp do api-gateway przeglądarki i customers-service z poziomu wyświetlonego https://<service name>-api-gateway.azuremicroservices.iowcześniej publicznego adresu URL w formacie .

Zrzut ekranu przedstawiający przykładową aplikację PetClinic z wyświetloną stroną Właściciele.

Napiwek

Aby usunąć problemy z wdrożeniami, możesz użyć następującego polecenia, aby pobrać dzienniki przesyłane strumieniowo w czasie rzeczywistym za każdym razem, gdy aplikacja jest uruchomiona az spring app logs --name <app name> --follow.

Wdrażanie dodatkowych aplikacji

Aby aplikacja PetClinic działała ze wszystkimi funkcjami, takimi jak serwer Administracja, wizyty i weterynarze, wdróż inne aplikacje za pomocą następujących poleceń:

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"

Czyszczenie zasobów

Jeśli planujesz kontynuować pracę z kolejnymi przewodnikami Szybki start i samouczkami, możesz pozostawić te zasoby na miejscu. Gdy grupa zasobów nie będzie już potrzebna, usuń grupę zasobów, która usuwa zasoby w grupie zasobów. Aby usunąć grupę zasobów przy użyciu interfejsu wiersza polecenia platformy Azure, użyj następujących poleceń:

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

Następne kroki