Esercizio - Ridistribuire l'app Web in Servizio app di Azure

Completato

Nell'esercizio precedente si è appreso come configurare l'app Web per usare il plug-in Maven per Servizio app di Azure. Il progetto Maven è configurato e testato correttamente. È possibile eseguire l'iterazione dell'app, migliorarla e ridistribuirla in Azure. Si immagini, ad esempio, di voler recuperare alcuni dettagli specifici su dove Azure ha distribuito il codice dell'applicazione e ridistribuire l'app Web.

In questo esercizio si aggiornerà la pagina index.jsp per l'app Web in modo da includere alcune informazioni sul server. Dopo aver testato le modifiche in locale, sarà necessario ridistribuire l'app Web in Azure.

Aggiornare e testare l'app Web

  1. Usare code per modificare la pagina index.jsp:

    code ~/MyWebApp/src/main/webapp/index.jsp
    
  2. Sostituire il contenuto del file con il codice HTML e Java inline seguente:

    <%@ 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. Salvare le modifiche premendo CTRL+S.

  4. Uscire dall'editor di codice premendo CTRL+Q.

  5. È necessario aprire una porta per rendere disponibile il server Web locale per la visualizzazione in un browser. In Cloud Shell usare curl:

    curl -X POST http://localhost:8888/openPort/8000;
    
  6. Eseguire l'app in locale con il comando Maven seguente:

    mvn package cargo:run
    
  7. Aprire una nuova scheda del browser usando l'URL del file JSON, accodando MyWebApp/. Verrà visualizzata la nuova pagina Stato del server:

    Screenshot dell'app Web di esempio in esecuzione in Tomcat in un Web browser.

  8. Visitare l'app distribuita selezionando l'URL nella shell per visualizzare l'app distribuita in esecuzione in Servizi app.

  9. Arrestare l'app Web con CTRL+C.

  10. Chiudere la porta aperta usando curl.

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

Ridistribuire l'app Web

  1. Ricompilare e ridistribuire l'app:

    mvn clean package
    mvn azure-webapp:deploy 
    

    Maven visualizza una serie di messaggi di compilazione e il messaggio finale indica che la distribuzione in Azure è riuscita.

    [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. Visitare l'app distribuita selezionando l'URL nella shell:

    App Web di esempio in esecuzione in Tomcat in un Web browser.

Eseguire lo streaming dei log in tempo reale

È stata ora distribuita ed eseguita l'app in servizio app. Se occorre risolvere dei problemi, è possibile usare il comando dell'interfaccia della riga di comando di Azure per ottenere lo streaming di log in tempo reale dall'app:

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

Nell'unità successiva si apprenderà come autenticare le distribuzioni dell'app Web in Servizio app di Azure.