Ćwiczenie — wdrażanie aplikacji Spring Boot Redis na platformie Azure
Teraz, gdy wszystko działa lokalnie, możesz wdrożyć aplikację w chmurze i przetestować jej zachowanie w środowisku produkcyjnym.
Tworzenie wystąpienia usługi Azure App Service
Utwórz wystąpienie usługi aplikacja systemu Azure w celu hostowania aplikacji. Użyj poniższego kodu interfejsu wiersza polecenia platformy Azure, aby utworzyć podstawowy plan usługi App Service korzystający z systemu Linux, a następnie dodać wystąpienie języka Java w usłudze App Service w tym planie.
Aby użyć języka Java 11 lub Java 17 zamiast języka Java 8, użyj "JAVA|<version>-java<version>"
zamiast "JAVA|8-jre8"
jako środowiska uruchomieniowego aplikacji internetowej.
az appservice plan create \
--resource-group $AZ_RESOURCE_GROUP \
--name $AZ_REDIS_NAME-webapp-plan \
--is-linux \
--sku B1
az webapp create \
--resource-group $AZ_RESOURCE_GROUP \
--name $AZ_REDIS_NAME-webapp \
--runtime "JAVA|8-jre8" \
--plan $AZ_REDIS_NAME-webapp-plan
Uwaga
Powyższy kod ponownie używa zmiennej $AZ_REDIS_NAME
w celu nadania nazwy planowi usługi App Service i wystąpieniu usługi App Service, ale można użyć różnych nazw. Nazwa wystąpienia usługi App Service jest częścią adresu URL, który musi być unikatowy na platformie Azure.
Możesz wykonać następny krok, gdy to wdrożenie zakończy się.
Wdrażanie aplikacji Spring Boot w usłudze aplikacja systemu Azure
W pliku pom.xml projektu dodaj następującą nową wtyczkę w
<plugins>
sekcji:<plugin> <groupId>com.microsoft.azure</groupId> <artifactId>azure-webapp-maven-plugin</artifactId> <version>2.11.0</version> <configuration> <schemaVersion>V2</schemaVersion> <resourceGroup>${env.AZ_RESOURCE_GROUP}</resourceGroup> <appName>${env.AZ_REDIS_NAME}-webapp</appName> <deployment> <resources> <resource> <directory>${project.basedir}/target</directory> <includes> <include>*.jar</include> </includes> </resource> </resources> </deployment> </configuration> </plugin>
Uwaga
Poprzednia konfiguracja używa skonfigurowanych wcześniej zmiennych środowiskowych. Aby ta konfiguracja działała, upewnij się, że
$AZ_RESOURCE_GROUP
zmienne i są$AZ_REDIS_NAME
poprawnie skonfigurowane.Po zakończeniu wdrażania usługi App Service uruchom następujące polecenie, aby spakować aplikację i wdrożyć ją na platformie Azure:
./mvnw package azure-webapp:deploy
Po pomyślnym zakończeniu wdrażania zostanie zwrócony następujący wiersz:
Successfully deployed the artifact to https://<redisName>-webapp.azurewebsites.net
Zanotuj adres URL uruchomionej aplikacji, jak pokazano w poprzednich danych wyjściowych, aby użyć go w następnej sekcji.
Testowanie aplikacji na platformie Azure
Użyj adresu URL aplikacji, aby uruchomić te same polecenia adresu URL klienta (cURL) w chmurze, która była używana na serwerze lokalnym.
Aby dodać element danych, uruchom następujące polecenie:
curl -d '{"description":"another description", "details":"some more details"}' -H "Content-Type: application/json" -X POST https://$AZ_REDIS_NAME-webapp.azurewebsites.net
Aby pobrać dane, uruchom polecenie:
curl https://$AZ_REDIS_NAME-webapp.azurewebsites.net
Aby zwiększać sesję, uruchom następujące polecenie kilka razy:
curl -b cookie.txt -c cookie.txt https://$AZ_REDIS_NAME-webapp.azurewebsites.net/session
Serwer lokalny i usługa w chmurze używają tego samego wystąpienia usługi Redis, więc są klastrowane. Dane zapisywane w jednym wystąpieniu są dostępne w drugim wystąpieniu. Usługa w chmurze może skalować w poziomie, dodając więcej węzłów, które używają tego samego wystąpienia usługi Redis do przechowywania danych biznesowych i danych sesji.