Distribuire l'app Web in Servizio app di Azure

Completato

azure-webapp-maven-plugin ha due obiettivi per gli sviluppatori Java, ovvero facilitare la gestione e la configurazione del plug-per Servizio app di Azure e semplificare la distribuzione dei progetti Maven in Servizio app di Azure. Nell'esercizio precedente è stata creata un'app Web Java di esempio rapida "Hello World" e ne è stato eseguito il test in locale. L'aggiunta del plug-in Maven per Servizio app di Azure al progetto consente di distribuire l'app in Servizio app di Azure.

In questa unità, verranno esaminate le possibili opzioni dell'azienda per ospitare le app nel Servizio app di Azure, poi si apprenderà come aggiungere e configurare azure-webapp-maven-plugin nel progetto Maven.

Introduzione a Servizio app di Azure

Il servizio app di Azure consente di ospitare i siti Web, le app Web, le API REST aziendali e altro codice dell'applicazione in Azure. Il codice del progetto è in esecuzione nel cloud. Non è necessario effettuare il provisioning o la configurazione di alcuna infrastruttura. L'esecuzione dell'app Web in Servizio app di Azure offre tutti i vantaggi dell'esecuzione in Azure: l'app è disponibile a livello globale, viene ridimensionata automaticamente, la sicurezza e la conformità sono integrate e si paga solo per le risorse usate.

Poiché Servizio app di Azure supporta più linguaggi di programmazione, gli sviluppatori possono continuare a scrivere le applicazioni usando i linguaggi preferiti. Java è uno dei migliori, insieme ad altri linguaggi come .NET Core, Python, Node.js e così via. Le app Web create possono essere ospitate in Linux, Windows o all'interno di un contenitore Docker. Prima di distribuire l'app Web in Azure, è necessario creare un piano di servizio app in Azure che specifichi il sistema operativo e il piano tariffario, per poter determinare le dimensioni delle risorse di calcolo di cui è stato effettuato il provisioning necessarie all'app.

Flussi di lavoro di Maven

Maven prevede tre cicli di vita predefiniti per la compilazione di progetti: default, clean e site. Il ciclo di vita default include le fasi seguenti:

Fase Descrizione
compile Compila il codice
package Comprime il codice in un file JAR o WAR
install Installa il pacchetto nel repository locale
deploy Copia il pacchetto finale nel repository remoto

Tuttavia, quando si usa il plug-in Maven per Servizio app di Azure, non si usa la fase di distribuzione inclusa nel ciclo di vita default di Maven. L'app verrà invece distribuita in Azure con il comando mvn azure-webapp:deploy.

Aggiunta del plug-in Maven per Servizio app di Azure al progetto

Per aggiungere il plug-in Maven per Servizio app di Azure all'app Web, è necessario aggiungere il codice XML per azure-webapp-maven-plugin al file pom.xml del progetto, come indicato di seguito:

<plugin>
  <groupId>com.microsoft.azure</groupId>
  <artifactId>azure-webapp-maven-plugin</artifactId>
  <version>2.13.0</version>
</plugin>

Tuttavia, il plug-in offre un modo pratico e interattivo per aggiungere configurazioni al file POM:

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

Il plug-in chiede le informazioni necessarie per configurare il piano di servizio app. Dopo che le scelte sono state confermate, il plug-in aggiunge l'elemento plug-in precedente e le impostazioni necessarie al file pom.xml del progetto che configura l'app Web per l'esecuzione in Servizio app di Azure.

Nota

Per informazioni sull'ultima versione del plug-in Maven, vedere la documentazione del plug-in Maven per Servizio app di Azure o il repository centrale di Maven.

Opzioni di configurazione

La sezione precedente di questa unità ha illustrato come usare in modo interattivo il plug-in Maven per Servizio app di Azure per configurare l'app Web. Non è tuttavia necessario eseguire la configurazione in modo interattivo. Se si preferisce, è possibile aggiungere manualmente il codice XML del plug-in al file pom.xml del progetto.

Il codice con annotazioni seguente estratto da un file pom.xml illustra alcune delle impostazioni necessarie:

<plugin> 
  <groupId>com.microsoft.azure</groupId>  
  <artifactId>azure-webapp-maven-plugin</artifactId>  
  <version>2.13.0</version>  
  <configuration> 
    <schemaVersion>v2</schemaVersion>  
    <subscriptionId>aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e</subscriptionId>  
    <resourceGroup>learn-9c627899-58ae-4ef5-9630-3336ec7bce0c</resourceGroup>  
    <appName>MyWebApp-1610102860270</appName>  
    <pricingTier>S1</pricingTier>  
    <region>westus</region>  
    <runtime> 
      <os>Linux</os>  
      <javaVersion>Java 17</javaVersion>  
      <webContainer>Tomcat 10.0</webContainer> 
    </runtime>  
    <deployment> 
      <resources> 
        <resource> 
          <directory>${project.basedir}/target</directory>  
          <includes> 
            <include>*.war</include> 
          </includes> 
        </resource> 
      </resources> 
    </deployment> 
  </configuration> 
</plugin> 

Nella tabella seguente sono riportate alcune delle opzioni di configurazione pertinenti. Per un elenco completo delle opzioni, vedere la documentazione del plug-in Maven per Servizio app di Azure.

Tag Opzioni
<javaVersion> Linux supporta le versioni 8, 11 e 17
Windows supporta le versioni 8, 11 e 17
<webContainer> Linux supporta Tomcat, JBoss EAP 7.2 e Java SE
Windows supporta Tomcat e Java SE
<resource> Specifica dove si trova il file WAR o JAR nel progetto

Opzioni di distribuzione

Se è già stato creato un piano di servizio app, è possibile specificare le impostazioni per tale piano nel file pom.xml. Quando si distribuisce l'app Web in Azure, Maven usa tali impostazioni per distribuire l'app Web nel piano di servizio app esistente.

<!-- Deploy Web App to the existing App Service Plan -->
<appServicePlanResourceGroup>${PLAN_RESOURCEGROUP_NAME}</appServicePlanResourceGroup>
<appServicePlanName>${PLAN_NAME}</appServicePlanName>

Un'altra opzione è quella di consentire ad azure-webapp-maven-plugin di creare automaticamente il piano di servizio app quando si esegue la configurazione del plug-in in modo interattivo. Questa opzione è il comportamento predefinito del plug-in se non si specifica un piano di servizio app esistente nel file pom.xml.

Indipendentemente dal fatto che si scelga di creare il piano di servizio app manualmente o in modo interattivo, il comando di Maven usato per distribuire il codice dell'applicazione in Azure è lo stesso:

mvn package azure-webapp:deploy

Nell'esercizio successivo verrà distribuita l'app Web in Servizio app di Azure.