Sebarkan Open Liberty Micro Web App ke Azure App Service dengan Maven

Dalam mulai cepat ini, Anda akan menggunakan Maven Plugin untuk Azure App Service Web Apps untuk menyebarkan aplikasi Open Liberty ke Azure App Service di Linux. Anda akan memilih penyebaran Java SE atas file Tomcat dan WAR ketika Anda ingin mengonsolidasikan dependensi, runtime, dan konfigurasi aplikasi Anda menjadi satu artefak yang dapat disebarkan.

Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum memulai.

Penting

Meskipun Azure App Service dirancang, dioperasikan, dan didukung oleh Microsoft, perangkat lunak yang Anda jalankan di atasnya tunduk pada rencana dukungan dan syarat lisensinya sendiri. Untuk detail tentang dukungan perangkat lunak yang dijelaskan dalam artikel ini, lihat halaman utama untuk perangkat lunak tersebut sebagaimana tercantum dalam artikel. Untuk dukungan terhadap Open Liberty, lihat Halaman dukungan Open Liberty. Untuk dukungan WebSphere Liberty, lihat IBM Cloud Support.

Prasyarat

Masuk ke Azure CLI

Cara paling sederhana dan termudah untuk mendapatkan Maven Plugin yang menyebarkan aplikasi Open Liberty Anda ialah dengan menggunakan Azure CLI.

Masuk ke akun Azure Anda dengan menggunakan Azure CLI:

az login

Ikuti petunjuk untuk menyelesaikan proses masuk.

Buat aplikasi sampel dari MicroProfile Starter

Di bagian ini, Anda akan membuat aplikasi Open Liberty dan mengujinya secara lokal.

  1. Buka browser web dan arahkan ke situs MicroProfile Starter.

    Cuplikan layar memperlihatkan MicroProfile Starter dengan runtime Open Liberty dipilih.

  2. Gunakan nilai dalam tabel berikut untuk mengisi MicroProfile Starter.

    Bidang Nilai
    groupid com.microsoft.azure.samples.openliberty
    artifactId openliberty-hello-azure
    Versi MicroProfile MP 4.0
    Versi Java SE Java 11
    MicroProfile Runtime Open Liberty
    Contoh untuk Spesifikasi Metrics, OpenAPI
  3. Pilih UNDUH untuk mengunduh proyek.

  4. Ekstrak file arsip; misalnya:

    unzip openliberty-hello-azure.zip
    

Jalankan aplikasi di lingkungan lokal

  1. Ubah direktori ke proyek yang sudah selesai; misalnya:

    cd openliberty-hello-azure/
    
  2. Bangun proyek menggunakan Maven; misalnya:

    mvn clean package
    
  3. Jalankan proyek; misalnya:

    java -jar target/openliberty-hello-azure.jar
    
  4. Uji aplikasi web dengan menelusurinya secara lokal menggunakan browser web. Misalnya, Anda dapat menggunakan perintah berikut jika Anda memiliki curl yang tersedia:

    curl http://localhost:9080/data/hello
    
  5. Anda akan melihat pesan berikut ditampilkan: Halo Dunia

Mengonfigurasi Plugin Maven untuk Azure App Service

Di bagian ini, Anda akan mengonfigurasi file pom.xml proyek Open Liberty sehingga Maven dapat menyebarkan aplikasi ke Azure App Service di Linux.

  1. Untuk mengonfigurasikan penyebaran, jalankan perintah Maven berikut:

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.3.0:config
    

    Pilih opsi berikut saat diminta:

    Input Bidang Input/Pilih Nilai
    Tentukan nilai untuk OS(Default: Linux): 1. Linux
    Tentukan nilai untuk javaVersion(Default: Java 8): 2. Java 11
    Tentukan nilai untuk runtimeStack(Default: TOMCAT 8.5): 2. TOMCAT 8.5
    Konfirmasi (Y/T) y

Catatan

Meskipun kami tidak menggunakan Tomcat, pilih TOMCAT 8.5 saat ini. Selama konfigurasi terperinci, Anda akan mengubah nilai dari TOMCAT 8.5 ke Java. Contoh ini menggunakan versi tertentu dari plugin Maven Azure App Service. Anda harus mempertimbangkan untuk menggunakan versi terbaru yang tersedia. Anda dapat menemukan nomor versi terbaru dengan mengunjungi situs seperti mvnrepository.com.

Perintah ini menghasilkan output yang mirip dengan contoh berikut:

 [INFO] Scanning for projects...
 [INFO]
 [INFO] ---< com.microsoft.azure.samples.openliberty:openliberty-hello-azure >----
 [INFO] Building openliberty-hello-azure 1.0-SNAPSHOT
 [INFO] --------------------------------[ war ]---------------------------------
 [INFO]
 [INFO] --- azure-webapp-maven-plugin:2.3.0:config (default-cli) @ openliberty-hello-azure ---
 Auth type: AZURE_CLI
 Default subscription:
 Username:
 [INFO] Subscription:
 [INFO] It may take a few minutes to load all Java Web Apps, please be patient.
 Define value for OS [Linux]:
   1: Windows
 * 2: Linux
   3: Docker
 Enter your choice:
 Define value for javaVersion [Java 8]:
 * 1: Java 8
   2: Java 11
 Enter your choice: 2
 Define value for webContainer [Tomcat 8.5]:
   1: Jbosseap 7
 * 2: Tomcat 8.5
   3: Tomcat 9.0
 Enter your choice:
 Define value for pricingTier [P1v2]:
   1: B1
   2: B2
   3: B3
   4: D1
   5: EP1
   6: EP2
   7: EP3
   8: F1
 *  9: P1v2
   10: P1v3
   11: P2v2
   12: P2v3
   13: P3v2
   14: P3v3
   15: S1
   16: S2
   17: S3
   18: Y1
 Enter your choice:
 Please confirm webapp properties
 Subscription Id : ********-****-****-****-************
 AppName : openliberty-hello-azure-1642075767899
 ResourceGroup : openliberty-hello-azure-1642075767899-rg
 Region : centralus
 PricingTier : P1v2
 OS : Linux
 Java : Java 11
 Web server stack: Tomcat 8.5
 Deploy to slot : false
 Confirm (Y/N) [Y]:
 [INFO] Saving configuration to pom.
 [INFO] ------------------------------------------------------------------------
 [INFO] BUILD SUCCESS
 [INFO] ------------------------------------------------------------------------
 [INFO] Total time:  21.981 s
 [INFO] Finished at: 2022-01-13T21:09:39+09:00
 [INFO] ------------------------------------------------------------------------
  1. Ubah file server.xml di bawah direktori /src/main/liberty/config/ untuk menjalankan Aplikasi di Azure Web Apps. Dalam file tersebut, tambahkan baris host="*" dalam tag <httpEndpoint>, seperti yang ditunjukkan pada contoh berikut:

    <httpEndpoint id="defaultHttpEndpoint"
                  host="*"
                  httpPort="9080"
                  httpsPort="9443"/>
    
  2. Ubah entri runtime dari TOMCAT 8.5 ke java dan entri deployment dari *.war ke *.jar dalam file pom.xml. Lalu tambahkan bagian <appSettings> ke bagian <configuration> dari PORT, WEBSITES_PORT, dan WEBSITES_CONTAINER_START_TIME_LIMIT. Entri XML Anda untuk azure-webapp-maven-plugin akan terlihat mirip dengan contoh berikut:

    <plugin>
      <groupId>com.microsoft.azure</groupId>
      <artifactId>azure-webapp-maven-plugin</artifactId>
      <version>2.3.0</version>
      <configuration>
        <schemaVersion>v2</schemaVersion>
        <subscriptionId>********-****-****-****-************</subscriptionId>
        <resourceGroup>openliberty-hello-azure-1642075767899-rg</resourceGroup>
        <appName>openliberty-hello-azure-1642075767899</appName>
        <pricingTier>P1v2</pricingTier>
        <region>japaneast</region>
        <runtime>
          <os>Linux</os>
          <javaVersion>Java 11</javaVersion>
          <webContainer>java</webContainer>
        </runtime>
      <appSettings>
        <property>
          <name>PORT</name>
          <value>9080</value>
        </property>
          <property>
          <name>WEBSITES_PORT</name>
          <value>9080</value>
        </property>
        <property>
          <name>WEBSITES_CONTAINER_START_TIME_LIMIT</name>
          <value>600</value>
        </property>
      </appSettings>
        <deployment>
          <resources>
            <resource>
              <directory>${project.basedir}/target</directory>
              <includes>
                <include>*.jar</include>
              </includes>
            </resource>
          </resources>
        </deployment>
      </configuration>
    </plugin>
    

Menyebarkan aplikasi ke Azure

Setelah mengonfigurasi semua pengaturan di bagian sebelumnya dari artikel ini, Anda siap untuk menyebarkan aplikasi web ke Azure. Untuk melakukannya, gunakan langkah-langkah berikut:

  1. Dari jendela perintah atau terminal yang Anda gunakan sebelumnya, bangun kembali file JAR menggunakan Maven jika Anda membuat perubahan apa pun pada file pom.xml; misalnya:

    mvn clean package
    
  2. Menyebarkan aplikasi web Anda ke Azure dengan menggunakan Maven; misalnya:

    mvn azure-webapp:deploy
    

Jika penyebaran berhasil, Anda akan melihat output berikut.

[INFO] Scanning for projects...
[INFO]
[INFO] ---< com.microsoft.azure.samples.openliberty:openliberty-hello-azure >----
[INFO] Building openliberty-hello-azure 1.0-SNAPSHOT
[INFO] --------------------------------[ war ]---------------------------------
[INFO]
[INFO] --- azure-webapp-maven-plugin:2.3.0:deploy (default-cli) @ openliberty-hello-azure ---
Auth type: AZURE_CLI
[INFO] Creating web app openliberty-hello-azure-1642075767899...
[INFO] Successfully created Web App openliberty-hello-azure-1642075767899.
[INFO] Trying to deploy external resources to openliberty-hello-azure-1642075767899...
[INFO] Successfully deployed the resources to openliberty-hello-azure-1642075767899
[INFO] Trying to deploy artifact to openliberty-hello-azure-1642075767899...
[INFO] Deploying (/Users/Downloads/openliberty-hello-azure/target/openliberty-hello-azure.jar)[jar]  ...
[INFO] Successfully deployed the artifact to https://openliberty-hello-azure-1642075767899.azurewebsites.net
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:11 min
[INFO] Finished at: 2022-01-13T21:29:50+09:00
[INFO] ------------------------------------------------------------------------

Maven akan menyebarkan aplikasi web Anda ke Azure. Jika aplikasi web atau paket aplikasi web belum ada, mereka akan dibuat untuk Anda. Mungkin akan perlu beberapa menit sebelum aplikasi web terlihat di URL yang ditampilkan pada output. Arahkan ke URL di browser Web. Anda akan melihat layar berikut.

Cuplikan layar browser web memperlihatkan halaman depan Open Liberty.

Ketika aplikasi Anda telah disebarkan, Anda dapat mengelolanya melalui portal Azure.

Aplikasi web Anda akan tercantum di grup sumber daya.

Anda dapat mengakses aplikasi web Anda dengan memilih Telusuri di halaman Gambaran Umum untuk aplikasi web Anda. Pastikan penyebaran berhasil dan Berjalan.

Konfirmasi aliran log dari App Service yang sedang berjalan

Anda dapat melihat (atau "mengikuti") log dari App Service yang sedang berjalan. Setiap panggilan ke console.log dalam kode situs ditampilkan di terminal.

az webapp log tail \
    --resource-group openliberty-hello-azure-1642075767899-rg \
    --name openliberty-hello-azure-1642075767899

Cuplikan layar jendela terminal memperlihatkan aliran log.

Membersihkan sumber daya

Saat sumber daya Azure tidak lagi diperlukan, bersihkan sumber daya yang Anda sebarkan dengan menghapus grup sumber daya.

  • Dari portal Microsoft Azure, pilih Grup sumber daya dari menu sebelah kiri.
  • Masukkan microprofile di bidang Filter menurut nama, grup sumber daya yang dibuat dalam tutorial ini harus memiliki prefiks ini.
  • Pilih grup sumber daya yang Anda buat dalam tutorial ini.
  • Pilih Hapus grup sumber daya dari menu atas.

Langkah berikutnya

Untuk mempelajari selengkapnya tentang MicroProfile dan Azure, lanjutkan ke pusat dokumentasi MicroProfile pada Azure.

Sumber Daya Tambahan:

Untuk informasi lebih lanjut tentang berbagai teknologi yang dibahas dalam artikel ini, lihat artikel berikut: