Latihan - Menyebarkan aplikasi Spring Boot Redis ke Azure

Selesai

Sekarang setelah semuanya berjalan secara lokal, Anda dapat menyebarkan aplikasi ke cloud dan menguji perilakunya dalam produksi.

Membuat instans Azure App Service

Buat instans Azure App Service untuk menghosting aplikasi Anda. Gunakan kode Azure CLI berikut untuk membuat paket App Service dasar yang menggunakan Linux, lalu tambahkan instans Java di App Service dalam paket tersebut.

Untuk menggunakan Java 11 atau Java 17, bukan Java 8, gunakan "JAVA|<version>-java<version>" alih-alih "JAVA|8-jre8" sebagai runtime aplikasi web.

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

Catatan

Kode sebelumnya menggunakan $AZ_REDIS_NAME kembali variabel untuk memberi nama paket App Service dan instans App Service, tetapi Anda dapat menggunakan nama yang berbeda. Nama instans App Service adalah bagian dari URL, yang harus unik di seluruh Azure.

Anda dapat melakukan langkah berikutnya saat penyebaran ini selesai.

Menyebarkan aplikasi Spring Boot ke Azure App Service

  1. Dalam file pom.xml proyek Anda, tambahkan plug-in baru berikut di bagian <plugins> :

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

    Catatan

    Konfigurasi sebelumnya menggunakan variabel lingkungan yang Anda konfigurasikan sebelumnya. Agar konfigurasi ini berfungsi, pastikan variabel dan $AZ_REDIS_NAME Anda $AZ_RESOURCE_GROUP disiapkan dengan benar.

  2. Setelah penyebaran App Service selesai, jalankan perintah berikut untuk mengemas aplikasi Anda dan menyebarkannya ke Azure:

    ./mvnw package azure-webapp:deploy
    
  3. Ketika penyebaran berhasil diselesaikan, penyebaran mengembalikan baris berikut:

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

    Perhatikan URL aplikasi Anda yang sedang berjalan, seperti yang ditunjukkan pada output sebelumnya, untuk digunakan di bagian berikutnya.

Menguji aplikasi di Azure

Gunakan URL aplikasi Anda untuk menjalankan perintah URL klien (cURL) yang sama di cloud yang Anda gunakan di server lokal Anda.

  1. Untuk menambahkan item data, jalankan perintah berikut:

    curl -d '{"description":"another description", "details":"some more details"}' -H "Content-Type: application/json" -X POST https://$AZ_REDIS_NAME-webapp.azurewebsites.net
    
  2. Untuk mengambil data, jalankan:

    curl https://$AZ_REDIS_NAME-webapp.azurewebsites.net
    
  3. Untuk menaikkan sesi Anda, jalankan perintah berikut beberapa kali:

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

Server lokal dan layanan cloud Anda menggunakan instans Redis yang sama, sehingga diklusterkan. Data yang Anda tulis dalam satu instans tersedia di instans lain. Layanan cloud dapat memperluas skala dengan menambahkan lebih banyak simpul yang semuanya menggunakan instans Redis yang sama untuk menyimpan data bisnis dan data sesi.