Distribuera din webbapp till Azure App Service
              azure-webapp-maven-plugin har två mål för Java-utvecklare: det första är att göra det enklare att hantera och konfigurera Azure App Service-plugin-programmet, och det andra är att förenkla distributionen av Maven-projekt till Azure App Service. I föregående övning skapade du en snabb Java-webbapp med "hello world"-exempel och testade den lokalt. Genom att lägga till Maven-plugin-programmet för Azure App Service i projektet kan du distribuera din app till Azure App Service.
I den här lektionen tittar du på alternativen för ditt företag att vara värd för sina appar i Azure App Service. Sedan får du lära dig hur du lägger till och konfigurerar azure-webapp-maven-plugin i ditt Maven-projekt.
Introduktion till Azure App Service
Med Azure App Service kan du vara värd för företagets webbplatser, webbappar, REST-API:er och annan programkod i Azure. Din projektkod körs i molnet. du behöver inte etablera eller konfigurera någon infrastruktur. När du kör din webbapp i Azure App Service får du alla fördelar med att köra i Azure: din app är globalt tillgänglig, den skalas automatiskt, har inbyggd säkerhet och efterlevnad och du betalar bara för de resurser du använder.
Azure App Service stöder flera programmeringsspråk, vilket gör att utvecklare kan fortsätta skriva sina program med hjälp av de språk som de är mest bekväma med. Java är en förstklassig medborgare, tillsammans med andra språk som .NET Core, Python, Node.jsosv. Du kan vara värd för de webbappar som du skapar i Linux, Windows eller i en Docker-container. Innan du distribuerar din webbapp till Azure skapar du en App Service-plan på Azure som anger operativsystemet och prisnivån, som avgör storleken på de etablerade beräkningsresurser som din app behöver.
Maven-arbetsflöden
Maven har tre inbyggda livscykeler för att skapa projekt: default, cleanoch site, där default livscykeln innehåller följande faser:
| Fas | Beskrivning | 
|---|---|
compile | 
Kompilerar koden | 
package | 
Paketerar din kod i en JAR- eller WAR-fil | 
install | 
Installerar paketet på din lokala lagringsplats | 
deploy | 
Kopierar det slutliga paketet till fjärrlagringsplatsen | 
Men när du använder Plugin-programmet Maven för Azure App Service använder du inte distributionsfasen som ingår i Mavens default livscykel. I stället distribuerar du din app till Azure med kommandot mvn azure-webapp:deploy.
Lägga till Maven-plugin-programmet för Azure App Service i projektet
Om du vill lägga till Maven-plugin-programmet för Azure App Service i webbappen lägger du till XML för azure-webapp-maven-plugin i projektets pom.xml fil, som följande:
<plugin>
  <groupId>com.microsoft.azure</groupId>
  <artifactId>azure-webapp-maven-plugin</artifactId>
  <version>2.13.0</version>
</plugin>
Plugin-programmet ger dock ett bekvämt och interaktivt sätt att lägga till konfigurationer i POM-filen:
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.13.0:config
Plugin-programmet uppmanar dig att ange den information som krävs för att konfigurera App Service-planen. När du har bekräftat dina val lägger plugin-programmet till föregående plugin-element och nödvändiga inställningar till projektets pom.xml fil som konfigurerar webbappen så att den körs i Azure App Service.
Anteckning
Vänligen kontrollera Maven-plugin för Azure App Service-dokumentation eller Maven Central Repository för information om den senaste versionen av Maven-plugin-programmet.
Konfigurationsalternativ
Föregående avsnitt i den här lektionen visade hur du använder Plugin-programmet Maven för Azure App Service interaktivt för att konfigurera din webbapp. Du behöver dock inte köra konfigurationen interaktivt. Om du vill kan du lägga till plugin-programmets XML i projektets pom.xml fil manuellt.
Följande kommenterade utdrag från en pom.xml-fil visar några av de inställningar som krävs:
<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> 
Några av de relevanta konfigurationsalternativen finns i följande tabell. En fullständig lista över alternativ finns i maven-plugin-programmet för Azure App Service-dokumentationen.
| Etikett | Alternativ | 
|---|---|
<javaVersion> | 
Linux stöder version 8, 11 och 17 Windows stöder version 8, 11 och 17  | 
<webContainer> | 
Linux stöder Tomcat, JBoss EAP 7.2 och Java SE Windows stöder Tomcat och Java SE  | 
<resource> | 
Anger var WAR eller JAR finns i projektet | 
Distribueringsalternativ
Om du redan har skapat en App Service-plan kan du ange inställningarna för planen i filen pom.xml. När du distribuerar din webbapp till Azure använder Maven dessa inställningar för att distribuera din nya app till den befintliga App Service-planen.
<!-- Deploy Web App to the existing App Service Plan -->
<appServicePlanResourceGroup>${PLAN_RESOURCEGROUP_NAME}</appServicePlanResourceGroup>
<appServicePlanName>${PLAN_NAME}</appServicePlanName>
Ett annat alternativ är att låta azure-webapp-maven-plugin skapa App Service-planen åt dig när du konfigurerar plugin-installationen interaktivt. Det här alternativet är standardbeteendet för plugin-programmet om du inte anger en befintlig App Service-plan i din pom.xml-fil.
Oavsett om du väljer att skapa App Service-planen interaktivt eller manuellt använder du samma Maven-kommando för att distribuera programkoden till Azure:
mvn package azure-webapp:deploy
I nästa övning distribuerar du din webbapp till Azure App Service.