แบบฝึกหัด - ปรับใช้เว็บแอปกับ Azure App Service

เสร็จสมบูรณ์เมื่อ

ในหน่วยนี้ คุณปรับใช้เว็บแอป Java Tomcat ของคุณไปยังบริการแอป Azure

Maven Plugin สําหรับบริการแอป Azure

Microsoft มี Maven Plugin สําหรับ Azure App Service เพื่อทําให้นักพัฒนา Java สามารถปรับใช้แอปพลิเคชันกับ Azure ได้ง่ายขึ้น โดยการใช้ปลั๊กอินนี้ คุณสามารถกําหนดค่า และปรับใช้แอปพลิเคชันของคุณกับ Azure ได้อย่างง่ายดาย ใช้ขั้นตอนในส่วนต่อไปนี้เพื่อกําหนดค่าปลั๊กอิน คอมไพล์โค้ดต้นฉบับของคุณและปรับใช้แอปของคุณ

กําหนดค่า Maven Plugin สําหรับบริการแอป Azure

ในการกําหนดค่า Maven Plugin สําหรับบริการแอป Azure ให้ทําตามขั้นตอนต่อไปนี้:

  1. เริ่มต้นการกําหนดค่าโดยใช้คําสั่งต่อไปนี้:

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.10.0:config
    
  2. หลังจากที่คุณใช้คําสั่ง คําถามบางข้อจะปรากฏที่พร้อมท์ ซึ่งช่วยให้คุณสามารถกําหนดค่าตัวเลือกต่าง ๆ ได้ กําหนดค่าตัวเลือกและค่าตามข้อมูลในตารางต่อไปนี้:

    รายการ ค่าอินพุต
    การสมัครใช้งาน เลือกการสมัครใช้งาน Azure ของคุณ
    กําหนดค่าสําหรับ OS Linux
    กําหนดค่าสําหรับระดับการกําหนดราคา B1
    กําหนดค่าสําหรับเวอร์ชัน Java ชวา 21
    กําหนดค่าสําหรับสแตกรันไทม์ ทอมแคท 10.0
    ยืนยัน (Y/N) Y

    หลังจากที่คุณกําหนดค่าตัวเลือกผลลัพธ์ต่อไปนี้เป็นเรื่องปกติ:

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.10.0:config
    [INFO] Scanning for projects...
    [INFO]
    [INFO] -------------------< com.example:simple-tomcat-app >--------------------
    [INFO] Building simple-tomcat-app 1.0-SNAPSHOT
    [INFO]   from pom.xml
    [INFO] --------------------------------[ war ]---------------------------------
    [INFO]
    [INFO] --- azure-webapp:2.10.0:config (default-cli) @ simple-tomcat-app ---
    Downloading from central: https://repo.maven.apache.org/maven2/net/minidev/json-smart/maven-metadata.xml
    Downloading from ossrh: https://oss.sonatype.org/content/repositories/snapshots/net/minidev/json-smart/maven-metadata.xml
    Downloading from shibboleth-repo: https://build.shibboleth.net/nexus/content/repositories/releases/net/minidev/json-smart/maven-metadata.xml
    Downloaded from central: https://repo.maven.apache.org/maven2/net/minidev/json-smart/maven-metadata.xml (1.3 kB at 6.3 kB/s)
    Please choose which part to config [Application]:
    * 1: Application
      2: Runtime
      3: DeploymentSlot
    Enter your choice: 1
    Define value for appName [simple-tomcat-app]: tomcatmavendemo
    Define value for resourceGroup [tomcatmavendemo-rg]: MyResourceGroup
    Define value for region [{azure.region}]: centralus
    Define value for pricingTier [B1]:
    *  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: 1
    Please confirm webapp properties
    AppName : tomcatmavendemo
    ResourceGroup : MyResourceGroup
    Region : centralus
    PricingTier : B1
    OS : Linux
    Java Version: 21
    Web server stack: Tomcat 10.1
    Deploy to slot : false
    Confirm (Y/N) [Y]: Y
    [INFO] Saving configuration to pom.
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  01:49 min
    [INFO] Finished at: 2024-11-07T09:54:55-08:00
    [INFO] ------------------------------------------------------------------------
    
  3. ขณะนี้ไฟล์ pom.xml ของคุณประกอบด้วยส่วน <plugins> ใหม่ในส่วน ถ้าคุณต้องการเปลี่ยนชื่อกลุ่มทรัพยากร ชื่ออินสแตนซ์ หรือตําแหน่งการปรับใช้ ให้เปลี่ยนค่าใน<resourceGroup>องค์ประกอบ , <appName>หรือ<region> ตัวอย่างต่อไปนี้แสดงไฟล์ pom.xml ทั่วไป:

          <!-- Azure Web App Maven Plugin -->
    <plugin>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>azure-webapp-maven-plugin</artifactId>
        <version>2.10.0</version>
        <configuration>
            <resourceGroup>MyResourceGroup</resourceGroup>
            <appName>tomcatmavendemo</appName>
            <region>centralus</region>
            <pricingTier>B1</pricingTier>
            <runtime>
                <os>linux</os>
                <javaVersion>21</javaVersion>
                <webContainer>Tomcat 10.1</webContainer>
            </runtime>
            <deployment>
                <resources>
                    <resource>
                        <directory>${project.build.directory}</directory>
                        <includes>
                            <include>*.war</include>
                        </includes>
                    </resource>
                </resources>
            </deployment>
        </configuration>
    </plugin>
    

คอมไพล์และปรับใช้กับบริการแอป Azure

หลังจากที่คุณกําหนดค่าสําหรับการปรับใช้กับบริการแอป Azure เสร็จเรียบร้อยแล้ว ให้ใช้ขั้นตอนต่อไปนี้เพื่อคอมไพล์โค้ดต้นทางของคุณ และปรับใช้แอปของคุณกับบริการแอป Azure:

  1. คอมไพล์ซอร์สโค้ดอีกครั้งโดยใช้คําสั่งต่อไปนี้:

    mvn clean package
    
  2. หลังจากคอมไพล์ซอร์สโค้ดแล้ว ให้ใช้คําสั่งต่อไปนี้เพื่อปรับใช้แอปพลิเคชันของคุณ:

    mvn azure-webapp:deploy
    

เมื่อการปรับใช้เสร็จสมบูรณ์ ผลลัพธ์ต่อไปนี้เป็นเรื่องปกติ:

[INFO] Successfully deployed the artifact to https://tomcatmavendemo.azurewebsites.net
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  06:55 min
[INFO] Finished at: 2024-11-07T10:05:19-08:00
[INFO] ------------------------------------------------------------------------

ตามที่คุณเห็น เอาต์พุตนั้นมี URL สาธารณะของแอปพลิเคชันที่ปรับใช้: Successfully deployed the artifact to https://tomcatmavendemo.azurewebsites.net

เมื่อคุณนําทางไปยังแอปพลิเคชัน แอปควรมีลักษณะคล้ายกับสกรีนช็อตต่อไปนี้:

สกรีนช็อตที่แสดงเว็บแอปที่ปรับใช้ในเบราว์เซอร์

ยืนยันสตรีมบันทึก

หากต้องการเข้าถึงสตรีมบันทึก ให้ใช้คําสั่งต่อไปนี้:

az webapp log tail \
    --resource-group <your-resource-group> \
    --name <your-app-name>

เอาต์พุตต่อไปนี้เป็นเรื่องปกติ:

2024-11-07T18:14:37  Welcome, you are now connected to log-streaming service.
Starting Log Tail -n 10 of existing logs ----
/appsvctmp/volatile/logs/runtime/container.log
2024-11-07T18:06:05.3874260Z  java.base/java.lang.Thread.run(Thread.java:1583)
2024-11-07T18:06:05.5635356Z Nov 07, 2024 6:06:05 PM org.apache.coyote.AbstractProtocol stop
2024-11-07T18:06:05.5636042Z INFO: Stopping ProtocolHandler ["http-nio-127.0.0.1-80"]
2024-11-07T18:06:05.6020767Z Nov 07, 2024 6:06:05 PM org.apache.coyote.AbstractProtocol stop
2024-11-07T18:06:05.6021438Z INFO: Stopping ProtocolHandler ["http-nio-169.254.129.3-80"]
2024-11-07T18:06:05.6423756Z Nov 07, 2024 6:06:05 PM org.apache.coyote.AbstractProtocol destroy
2024-11-07T18:06:05.6424403Z INFO: Destroying ProtocolHandler ["http-nio-127.0.0.1-80"]
2024-11-07T18:06:05.6893602Z Nov 07, 2024 6:06:05 PM org.apache.coyote.AbstractProtocol destroy
2024-11-07T18:06:05.6894311Z INFO: Destroying ProtocolHandler ["http-nio-169.254.129.3-80"]
2024-11-07T18:06:05.7849816Z Done processing signal SIGTERM. Exiting now!
Ending Log Tail of existing logs ---
Starting Live Log Stream ---

สรุปแบบฝึกหัด

ในหน่วยนี้ คุณได้เรียนรู้วิธีการสร้างเว็บแอป Tomcat โดยใช้ Maven คุณยังได้เรียนรู้วิธีการสร้าง servlet และวิธีการทํางาน ถัดไป คุณได้ปรับใช้เว็บแอปของคุณภายในเครื่องโดยใช้ Tomcat สุดท้าย คุณได้ปรับใช้กับ Azure App Service สําหรับทุกคนในโลกเพื่อเข้าถึง