練習 - 將 Web 應用程式重新部署至 Azure App Service

已完成

在上一個練習中,您已了解如何將 Web 應用程式設定為使用適用於 Azure App Service 的 Maven 外掛程式。 您的 Maven 專案已正確設定及測試。 您可以逐一查看、改善應用程式,並將之重新部署至 Azure。 例如,假設您想要擷取一些有關 Azure 在何處部署應用程式程式碼和重新部署 Web 應用程式的特定詳細資料。

在此練習中,您將更新 Web 應用程式的 index.jsp 頁面,以包含伺服器的一些相關資訊。 在本機測試這些變更之後,即會將 Web 應用程式重新部署至 Azure。

更新和測試 Web 應用程式

  1. 使用 code 來編輯 index.jsp 頁面:

    code ~/MyWebApp/src/main/webapp/index.jsp
    
  2. 以下列 HTML 和內嵌 Java 程式碼取代此檔案的內容:

    <%@ page import = "java.io.*,java.util.*, javax.servlet.*, java.net.InetAddress, java.io.File" %>
    <html>
    <head><title>Server Status Page</title></head>
    <body>
        <h2>Server name: <% out.print(InetAddress.getLocalHost().getHostName());%></h2>
        <p><strong>Internal IP Address:</strong> <% out.println(InetAddress.getLocalHost().getHostAddress()); %></p>
        <p><strong>Free disk space:</strong>
            <%
                File file = new File("/");
                out.println(file.getFreeSpace());
                file = null;
            %>
        </p>
        <p><strong>Free memory: </strong>
            <% 
                out.println(Runtime.getRuntime().freeMemory());
            %>
        </p>
        <p><strong>Date: </strong>
            <%
                Date date = new Date();
                out.print(date.toString());
                date = null;
            %>
        </p>
    </body>
    </html>
    
  3. 鍵入 Ctrl+S 來儲存變更。

  4. 輸入 Ctrl+Q 來結束程式碼編輯器。

  5. 您將需要開啟連接埠,以確保可在瀏覽器中檢視本機網頁伺服器。 在 Cloud Shell 中,使用 curl:

    curl -X POST http://localhost:8888/openPort/8000;
    
  6. 使用下列 Maven 命令,在本機執行應用程式:

    mvn tomcat7:run
    
  7. 使用 JSON 中的 URL,並附加 MyWebApp/,開啟新的瀏覽器索引標籤。 您應該會看到新的 [伺服器狀態] 頁面:

    Screenshot of the example web app running on Tomcat in a web browser.

  8. 在殼層中選取 URL 來瀏覽已部署的應用程式,以查看在應用程式服務上執行的已部署應用程式。

  9. 使用 Ctrl+C 停止 Web 應用程式。

  10. 使用 curl 關閉開啟的連接埠。

    curl -X POST http://localhost:8888/closePort/8000;
    

重新部署 Web 應用程式

  1. 重建並重新部署應用程式:

    mvn clean package
    mvn azure-webapp:deploy 
    
  2. 您將得到此主控台輸出,其中顯示部署使用了新的驗證設定:

    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] Building MyWebApp Maven Webapp 1.0-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO]
    [INFO] --- azure-webapp-maven-plugin:1.9.0:deploy (default-cli) @ MyWebApp ---
    [INFO] [Correlation ID: 3e5cf479-6732-4c6a-96da-88044cdadcc0] Instance discovery was successful
    [INFO] Updating app service plan
    [INFO] Updating target Web App...
    [INFO] Successfully updated Web App.
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] Copying 1 resource to /home/~/MyWebApp/target/azure-webapp/MyWebApp-1570214065588
    [INFO] Trying to deploy artifact to MyWebApp-1570214065588...
    [INFO] Deploying the war file MyWebApp.war...
    [INFO] Successfully deployed the artifact to https://MyWebApp-1570214065588.azurewebsites.net
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 19.448 s
    [INFO] Finished at: 2019-10-09T12:00:15+00:00
    [INFO] Final Memory: 40M/324M
    [INFO] ------------------------------------------------------------------------
    
  3. 在殼層中選取 URL 來瀏覽已部署的應用程式:

    Example web app running on Tomcat in a web browser.

即時串流記錄

您現在已在 App Service 上部署並執行您的應用程式。 如果您需要進行疑難排解,您可以使用此 Azure CLI 命令取得應用程式的即時記錄串流:

az webapp log tail -n <app name> -g "<rgn>[sandbox resource group name]</rgn>"

在下一個單元中,您將了解如何向 Azure App Service 驗證 Web 應用程式部署。