Condividi tramite


Distribuire un'app Web Helidon in Servizio app di Azure con Maven

In questa guida di avvio rapido si userà il plug-in Maven per app Web del servizio app di Azure per distribuire un'applicazione Helidon in Servizio app di Azure 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.

Prerequisiti

Accedere all'interfaccia della riga di comando di Azure

Il modo più semplice e facile per distribuire l'applicazione Helidon tramite il plug-in Maven 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 Helidon e la si testerà in locale.

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

    Screenshot che mostra l'opzione MicroProfile Starter con helidon runtime selezionata.

  2. Immettere o selezionare i valori per i campi come indicato di seguito.

    Campo valore
    groupId com.microsoft.azure.samples.helidon
    artifactId helidon-hello-azure
    MicroProfile Version (Versione di MicroProfile) MP 3.2
    Java SE Version (Versione di Java SE) Java 11
    MicroProfile Runtime (Runtime di MicroProfile) Helidon
    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 helidon-hello-azure.zip
    
  5. È anche possibile creare il progetto con il comando seguente:

    mvn -U archetype:generate -DinteractiveMode=false \
        -DarchetypeGroupId=io.helidon.archetypes \
        -DarchetypeArtifactId=helidon-quickstart-se \
        -DarchetypeVersion=2.0.0 \
        -DgroupId=com.microsoft.azure.samples.helidon \
        -DartifactId=helidon-hello-azure \
        -Dpackage=com.microsoft.azure.samples.helidon
    
  6. Passare alla directory del progetto completato. Ad esempio:

    cd helidon-hello-azure/
    
  7. Compilare il file JAR usando Maven. Ad esempio:

    mvn clean package
    
  8. Dopo che è stata creata, avviare l'app Web con Maven, ad esempio:

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

    curl http://localhost:8080/greet
    
  10. Verrà visualizzato il messaggio seguente: Hello World

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

In questa sezione si configurerà il file pom.xml del progetto Helidon in modo che Maven possa distribuire l'app in Servizio app di Azure in Linux.

  1. Aprire il file pom.xml in un editor di codice.

  2. Nella sezione <build> del file pom.xml inserire la voce <plugin> seguente all'interno del tag <plugins>.

    <build>
      <finalName>helidon-hello-azure</finalName>
      <plugins>
        <plugin>
          <groupId>com.microsoft.azure</groupId>
          <artifactId>azure-webapp-maven-plugin</artifactId>
          <version>1.10.0</version>
        </plugin>
      </plugins>
    </build>
    
  3. È quindi possibile configurare la distribuzione, eseguire il comando Maven seguente:

    mvn azure-webapp: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): 1. Java 11
    Confirm (Y/N) y

    Questo comando genera un output simile all'esempio seguente:

    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------< com.microsoft.azure.samples.helidon:helidon-hello-azure >-------
    [INFO] Building myproject 1.0-SNAPSHOT
    [INFO] --------------------------------[ jar ]---------------------------------
    [INFO]
    [INFO] --- azure-webapp-maven-plugin:1.10.0:config (default-cli) @ helidon-hello-azure ---
    Define value for OS(Default: Linux):
    1. linux [*]
    2. windows
    3. docker
    Enter index to use: 1
    Define value for javaVersion(Default: Java 8):
    1. Java 11
    2. Java 8 [*]
    Enter index to use: 1
    Please confirm webapp properties
    AppName : helidon-hello-azure-1600998900939
    ResourceGroup : helidon-hello-azure-1600998900939-rg
    Region : westeurope
    PricingTier : PremiumV2_P1v2
    OS : Linux
    RuntimeStack : JAVA 11-java11
    Deploy to slot : false
    Confirm (Y/N)? : y
    [INFO] Saving configuration to pom.
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  02:44 min
    [INFO] Finished at: 2020-09-25T10:57:35+09:00
    [INFO] ------------------------------------------------------------------------
    
  4. Aggiungere la <appSettings> sezione alla <configuration> sezione di PORT, WEBSITES_PORTe WEBSITES_CONTAINER_START_TIME_LIMIT. Aggiungere l'oggetto <include>/libs/*.jar</include> alle risorse nella distribuzione.

    <plugin>
      <groupId>com.microsoft.azure</groupId>
      <artifactId>azure-webapp-maven-plugin</artifactId>
      <version>1.10.0</version>
      <configuration>
        <schemaVersion>V2</schemaVersion>
        <resourceGroup>microprofile</resourceGroup>
        <appName>helidon-hello-azure-1591663020899</appName>
        <pricingTier>P1v2</pricingTier>
        <region>japaneast</region>
        <runtime>
          <os>linux</os>
          <javaVersion>java11</javaVersion>
          <webContainer>java11</webContainer>
        </runtime>
        <appSettings>
          <property>
            <name>PORT</name>
            <value>8080</value>
          </property>
          <property>
            <name>WEBSITES_PORT</name>
            <value>8080</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>
                <include>/libs/*.jar</include>
              </includes>
            </resource>
          </resources>
        </deployment>
      </configuration>
    

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
    

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à visualizzato il messaggio Hello World

Quando il Web è stato distribuito, è possibile gestirlo tramite il portale di Azure.

L'app Web verrà elencata in servizio app.

È possibile accedere all'app Web selezionando Sfoglia nella pagina Panoramica dell'app Web.

Verificare il completamento della distribuzione con lo stesso comando curl eseguito in precedenza (/data/hello), usando l'URL dell'app Web riportato nel portale invece di localhost. Verrà visualizzato il messaggio seguente: Hello World

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 microprofile \
    --name helidon-hello-azure-1600998900939

Screenshot della finestra del terminale che mostra l'output del 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: