Ćwiczenie — wdrażanie aplikacji Spring Boot Redis na platformie Azure

Ukończone

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

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

  2. 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
    
  3. 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.

  1. 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
    
  2. Aby pobrać dane, uruchom polecenie:

    curl https://$AZ_REDIS_NAME-webapp.azurewebsites.net
    
  3. 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.