Alıştırma - Spring Boot Redis uygulamasını Azure'a dağıtma

Tamamlandı

Artık her şey yerel olarak çalıştığına göre, uygulamayı buluta dağıtabilir ve üretimdeki davranışını test edebilirsiniz.

Azure App Service örneği oluşturma

Uygulamanızı barındırmak için bir Azure Uygulaması Hizmeti örneği oluşturun. Linux kullanan temel bir App Service planı oluşturmak için aşağıdaki Azure CLI kodunu kullanın ve ardından bu plana App Service üzerinde Java örneği ekleyin.

Java 8 yerine Java 11 veya Java 17 kullanmak için web uygulaması çalışma zamanı yerine "JAVA|8-jre8" kullanın"JAVA|<version>-java<version>".

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

Dekont

Yukarıdaki kod, App Service planını ve App Service örneğini adlandırmak için değişkeni yeniden $AZ_REDIS_NAME kullanır, ancak farklı adlar kullanabilirsiniz. App Service örnek adı, URL'nin bir parçasıdır ve bu ad Azure genelinde benzersiz olmalıdır.

Bu dağıtım tamamlarken sonraki adımı gerçekleştirebilirsiniz.

Spring Boot uygulamasını Azure Uygulaması Hizmetine dağıtma

  1. Projenizin pom.xml dosyasına bölümüne aşağıdaki yeni eklentiyi <plugins> ekleyin:

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

    Dekont

    Önceki yapılandırmada daha önce yapılandırdığınız ortam değişkenleri kullanılır. Bu yapılandırmanın çalışması için ve $AZ_REDIS_NAME değişkenlerinizin $AZ_RESOURCE_GROUP doğru ayarlandığından emin olun.

  2. App Service dağıtımı tamamlandıktan sonra aşağıdaki komutu çalıştırarak uygulamanızı paketleyin ve Azure'a dağıtın:

    ./mvnw package azure-webapp:deploy
    
  3. Dağıtım başarıyla tamamlandığında aşağıdaki satırı döndürür:

    Successfully deployed the artifact to https://<redisName>-webapp.azurewebsites.net
    

    Sonraki bölümde kullanmak üzere, önceki çıkışta gösterildiği gibi çalışan uygulamanızın URL'sini not edin.

Uygulamayı Azure'da test edin

Yerel sunucunuzda kullandığınız istemci URL'si (cURL) komutlarını bulutta çalıştırmak için uygulama URL'nizi kullanın.

  1. Veri öğesi eklemek için aşağıdaki komutu çalıştırın:

    curl -d '{"description":"another description", "details":"some more details"}' -H "Content-Type: application/json" -X POST https://$AZ_REDIS_NAME-webapp.azurewebsites.net
    
  2. Verileri almak için şunu çalıştırın:

    curl https://$AZ_REDIS_NAME-webapp.azurewebsites.net
    
  3. Oturumunuzu artırmak için aşağıdaki komutu birkaç kez çalıştırın:

    curl -b cookie.txt -c cookie.txt https://$AZ_REDIS_NAME-webapp.azurewebsites.net/session
    

Yerel sunucunuz ve bulut hizmetiniz aynı Redis örneğini kullandığından kümelenmiş olur. Bir örnekte yazdığınız veriler diğer örnekte kullanılabilir. Bulut hizmeti, hem iş verilerini hem de oturum verilerini depolamak için aynı Redis örneğini kullanan daha fazla düğüm ekleyerek ölçeği genişletebilir.