练习 - 将 Web 应用重新部署到 Azure 应用服务

已完成

在上一个练习中,你学习了如何将 Web 应用配置为使用 Azure 应用服务的 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.*, jakarta.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. 你需要打开一个端口,以便可在浏览器中查看本地 Web 服务器。 在 Cloud Shell 中,使用 curl

    curl -X POST http://localhost:8888/openPort/8000;
    
  6. 使用以下 Maven 命令在本地运行应用:

    mvn package cargo:run
    
  7. 使用 JSON 中的 URL 打开新的浏览器标签页,并追加 MyWebApp/。 你应会看到新的“服务器状态”页面:

    Web 浏览器中在 Tomcat 上运行的示例 Web 应用的屏幕截图。

  8. 通过在 shell 中选择 URL 查看在应用服务上运行的已部署应用。

  9. Ctrl+C 停止 Web 应用。

  10. 使用 curl 关闭打开的端口。

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

重新部署你的 Web 应用

  1. 重新生成并重新部署应用:

    mvn clean package
    mvn azure-webapp:deploy 
    

    Maven 会显示一系列生成消息,最后一条消息应指示成功部署到 Azure。

    [INFO] Successfully deployed the resources to MyWebApp-1570214065588
    [INFO] Trying to deploy artifact to MyWebApp-1570214065588...
    [INFO] Deploying (/home/cephas/MyWebApp/target/MyWebApp.war)[war]  ...
    [INFO] Application url: https://MyWebApp-1570214065588.azurewebsites.net
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  01:00 min
    [INFO] Finished at: 2024-05-02T12:58:05Z
    [INFO] ------------------------------------------------------------------------
    
  2. 通过选择 shell 中的 URL 访问已部署的应用:

    在 Web 浏览器中的 Tomcat 上运行的 Web 应用示例。

实时流式传输日志

现在,你已在应用服务上部署并运行了你的应用。 如果需要排除故障,可以使用以下 Azure CLI 命令从应用获取实时日志流式处理:

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

在下一个单元中,你将了解如何对 Azure 应用服务的 Web 应用部署进行身份验证。