Szybki start: tworzenie i wdrażanie aplikacji w usłudze Azure Spring Apps
Uwaga
Plany Podstawowa, Standardowa i Enterprise zostaną wycofane od połowy marca 2025 r. z 3-letnim okresem emerytalnym. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu usługi Azure Spring Apps.
Zużycie standardowe i dedykowany plan zostaną wycofane od 30 września 2024 r. z całkowitym zamknięciem po sześciu miesiącach. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz Migrowanie użycia usługi Azure Spring Apps w warstwie Standardowa i dedykowanego planu do usługi Azure Container Apps.
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
- Ukończenie poprzednich przewodników Szybki start w tej serii:
- Aprowizuj wystąpienie usługi Azure Spring Apps.
- Skonfiguruj serwer konfiguracji usługi Azure Spring Apps.
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.
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
Przejdź do katalogu repozytorium.
cd azure-spring-apps-samples
Wdrażanie dostawcy PlanetWeatherProvider
Wykonaj poniższe kroki, aby wdrożyć projekt PlanetWeatherProvider.
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.
Zmień katalog na
PlanetWeatherProvider
folder projektu.cd steeltoe-sample/src/planet-weather-provider
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>
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.
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-weather
to nazwa określona wSolarSystemWeather
pliku appsettings.json projektu.Uruchomienie tego polecenia może potrwać kilka minut.
Zmień katalog na
SolarSystemWeather
projekt.cd ../solar-system-weather
Utwórz pliki binarne i .zip do wdrożenia.
dotnet publish -c release -o ./publish
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.
Uruchom następujące polecenie, aby przypisać punkt końcowy.
az spring app update --name solar-system-weather --assign-endpoint true
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
- Ukończenie poprzednich przewodników Szybki start w tej serii:
- Aprowizuj wystąpienie usługi Azure Spring Apps.
- Skonfiguruj serwer konfiguracji usługi Azure Spring Apps.
- JDK 17
- Maven 3.0 lub nowszy
- Subskrypcja Azure. Jeśli nie masz subskrypcji, przed rozpoczęciem utwórz bezpłatne konto .
- Opcjonalnie interfejs wiersza polecenia platformy Azure w wersji 2.45.0 lub nowszej. Zainstaluj rozszerzenie Azure Spring Apps za pomocą następującego polecenia:
az extension add --name spring
- Opcjonalnie zestaw narzędzi Azure Toolkit for IntelliJ.
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.
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>
Utwórz dwie podstawowe aplikacje Spring dla aplikacji PetClinic:
api-gateway
icustomers-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
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"
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.io
wcześniej publicznego adresu URL w formacie .
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 z wszystkimi funkcjami, takimi jak Serwer administracyjny, 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 ..."