Condividi tramite


Distribuire un'app Web Open Liberty Micro in app Azure Service con Maven

In questa guida introduttiva si userà il plug-in Maven per app Azure Service App Web per distribuire un'applicazione Open Liberty in app Azure Service in Linux. La distribuzione con Java SE sarà preferibile rispetto a Tomcat e file WAR quando si vogliono consolidare le dipendenze, il runtime e la configurazione dell'app in un singolo artefatto distribuibile.

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Importante

Mentre app Azure Service è progettato, gestito e supportato da Microsoft, il software eseguito sopra è soggetto ai propri piani di supporto e condizioni di licenza. Per informazioni dettagliate sul supporto del software descritto in questo articolo, vedere le pagine principali per tale software, come indicato nell'articolo. Per il supporto per Open Liberty, vedere la pagina del supporto di Open Liberty. Per il supporto per WebSphere Liberty, vedere IBM Cloud Support.For support for WebSphere Liberty, see IBM Cloud Support.

Prerequisiti

Accedere all'interfaccia della riga di comando di Azure

Il modo più semplice e semplice per ottenere il plug-in Maven che distribuisce l'applicazione Open Liberty consiste nell'usare l'interfaccia della riga di comando di Azure.

Accedere all'account Azure con l'interfaccia della riga di comando di Azure:

az login

Seguire le istruzioni per completare il processo di accesso.

Creare un'app di esempio da MicroProfile Starter

In questa sezione si creerà un'applicazione Open Liberty e la si testerà in locale.

  1. Aprire un Web browser e passare al sito MicroProfile Starter .

    Screenshot che mostra MicroProfile Starter con il runtime Open Liberty selezionato.

  2. Usare i valori nella tabella seguente per compilare MicroProfile Starter.

    Campo valore
    groupId com.microsoft.azure.samples.openliberty
    artifactId openliberty-hello-azure
    MicroProfile Version (Versione di MicroProfile) MP 4.0
    Java SE Version (Versione di Java SE) Java 11
    MicroProfile Runtime (Runtime di MicroProfile) Aprire Liberty
    Examples for Specifications (Esempi per le specifiche) Metrics, OpenAPI
  3. Selezionare DOWNLOAD per scaricare il progetto.

  4. Decomprimere il file di archivio, ad esempio:

    unzip openliberty-hello-azure.zip
    

Eseguire l'applicazione nell'ambiente locale

  1. Passare alla directory del progetto completato. Ad esempio:

    cd openliberty-hello-azure/
    
  2. Compilare il progetto usando Maven, ad esempio:

    mvn clean package
    
  3. Eseguire il progetto, ad esempio:

    java -jar target/openliberty-hello-azure.jar
    
  4. Testare l'app Web esplorandola localmente tramite un Web browser. Se è disponibile curl, ad esempio, è possibile usare il comando seguente:

    curl http://localhost:9080/data/hello
    
  5. Verrà visualizzato il messaggio seguente: Hello World

Configurare il plug-in Maven per il servizio app di Azure

In questa sezione si configurerà il progetto Open Liberty pom.xml file in modo che Maven possa distribuire l'app in app Azure Service in Linux.

  1. Per configurare la distribuzione, eseguire il comando Maven seguente:

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

    Selezionare le opzioni seguenti quando richiesto:

    Campo di input Valore di input/selezione
    Definire il valore per OS(Default: Linux): 1. linux
    Definire il valore per javaVersion(Default: Java 8): 2. Java 11
    Definire il valore per runtimeStack(Default: TOMCAT 8.5): 2. TOMCAT 8.5
    Confirm (Y/N) y

Nota

Anche se non si usa Tomcat, selezionare TOMCAT 8.5 in questo momento. Durante la configurazione dettagliata si modificherà il valore da TOMCAT 8.5 a Java. Questo esempio usa una versione specifica del plug-in Service Maven di app Azure. È consigliabile usare la versione più recente disponibile. È possibile individuare il numero della versione più recente visitando un sito come mvnrepository.com.

Questo comando genera un output simile all'esempio seguente:

 [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. Modificare il file server.xml nella directory /src/main/liberty/config/ per l'esecuzione dell'applicazione in Azure App Web. Nel file aggiungere la host="*" riga nel <httpEndpoint> tag , come illustrato nell'esempio seguente:

    <httpEndpoint id="defaultHttpEndpoint"
                  host="*"
                  httpPort="9080"
                  httpsPort="9443"/>
    
  2. Modificare la runtime voce da TOMCAT 8.5 a java e deployment da *.war a *.jar nel file di pom.xml . Aggiungere quindi la <appSettings> sezione alla <configuration> sezione di PORT, WEBSITES_PORTe WEBSITES_CONTAINER_START_TIME_LIMIT. La voce XML per azure-webapp-maven-plugin sarà simile all'esempio seguente:

    <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>
    

Distribuire l'app in Azure

Dopo aver configurato tutte le impostazioni nelle sezioni precedenti di questo articolo, si è pronti per distribuire l'app Web in Azure. A tale scopo, seguire questa procedura:

  1. Se sono state apportate modifiche al file pom.xml, dalla finestra del terminale o al prompt dei comandi usato in precedenza ricompilare il file JAR usando Maven. Ad esempio:

    mvn clean package
    
  2. Distribuire l'app Web in Azure usando Maven. Ad esempio:

    mvn azure-webapp:deploy
    

Se la distribuzione è riuscita, verrà visualizzato l'output seguente.

[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 distribuirà l'app Web in Azure. Se l'app Web o il piano dell'app Web non esiste già, verrà creato automaticamente. Potrebbero essere necessari alcuni minuti prima che l'app Web sia visibile nell'URL indicato nell'output. Passare all'URL in un Web browser. Verrà visualizzata la schermata seguente.

Screenshot del Web browser che mostra la prima pagina di Open Liberty.

Quando l'app è stata distribuita, è possibile gestirla tramite il portale di Azure.

L'app Web verrà elencata nel gruppo di risorse.

È possibile accedere all'app Web selezionando Sfoglia nella pagina Panoramica per l'app Web. Verificare che la distribuzione sia riuscita e in esecuzione.

Verificare il flusso di log dal servizio app in esecuzione

È possibile visualizzare i log del servizio app in esecuzione. Qualsiasi chiamata effettuata a console.log nel codice del sito viene visualizzata nel terminale.

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

Screenshot della finestra del terminale che mostra il flusso di log.

Pulire le risorse

Quando non sono più necessarie, eseguire la pulizia delle risorse di Azure distribuite eliminando il gruppo di risorse.

  • Nel portale di Azure selezionare Gruppo di risorse nel menu a sinistra.
  • Immettere microprofile nel campo Filtra per nome. Il gruppo di risorse creato in questa esercitazione dovrebbe avere questo prefisso.
  • Selezionare il gruppo di risorse creato in questa esercitazione.
  • Selezionare Elimina gruppo di risorse nel menu in alto.

Passaggi successivi

Per altre informazioni su MicroProfile e Azure, passare al centro di documentazione di MicroProfile in Azure.

Risorse aggiuntive

Per altre informazioni sulle varie tecnologie illustrate in questo articolo, vedere gli articoli seguenti: