Wdrażanie aplikacji internetowej w usłudze Azure App Service

Ukończone

azure-webapp-maven-plugin ma dwa cele dla deweloperów języka Java: pierwszym jest ułatwienie zarządzania i konfigurowania wtyczki usługi Azure App Service, a drugą jest uproszczenie wdrażania projektów Maven w usłudze Azure App Service. W poprzednim ćwiczeniu utworzono szybką przykładową aplikację webową "hello world" Java i testowano ją lokalnie. Dodanie wtyczki Maven dla usługi Azure App Service do projektu umożliwia wdrożenie aplikacji w usłudze Azure App Service.

W tej lekcji poznasz opcje hostowania aplikacji Twojej firmy w usłudze Azure App Service, a następnie dowiesz się, jak dodać i skonfigurować azure-webapp-maven-plugin w swoim projekcie Maven.

Wprowadzenie do usługi Azure App Service

Usługa Azure App Service umożliwia hostowanie witryn internetowych, aplikacji internetowych, interfejsów API REST i innego kodu aplikacji na platformie Azure. Kod projektu działa w chmurze; Nie musisz aprowizować ani konfigurować żadnej infrastruktury. Uruchamianie aplikacji internetowej w usłudze Azure App Service zapewnia wszystkie korzyści płynące z działania na platformie Azure: aplikacja jest dostępna globalnie, jest skalowana automatycznie, ma wbudowane zabezpieczenia i zgodność, a płacisz tylko za używane zasoby.

Usługa Azure App Service obsługuje wiele języków programowania, co umożliwia deweloperom kontynuowanie pisania aplikacji przy użyciu języków, z którymi są najbardziej wygodne. Język Java jest traktowany jako język pierwszej klasy, podobnie jak inne języki, takie jak .NET Core, Python, Node.jsitp. Aplikacje internetowe, które tworzysz, możesz hostować w systemie Linux, Windows lub wewnątrz kontenera Docker. Przed wdrożeniem aplikacji internetowej na platformie Azure utworzysz plan usługi App Service na platformie Azure, który określa system operacyjny i warstwę cenową, która określa rozmiar aprowizowanych zasobów obliczeniowych, których potrzebuje twoja aplikacja.

Przepływy pracy narzędzia Maven

Program Maven ma trzy wbudowane cykle życia dla projektów konstrukcyjnych: default, cleani site, gdzie cykl życia default obejmuje następujące fazy:

Faza Opis
compile Kompiluje kod
package Pakuje kod do pliku JAR lub WAR
install Instaluje pakiet w repozytorium lokalnym
deploy Kopiuje końcowy pakiet do repozytorium zdalnego

Jednak w przypadku korzystania z wtyczki Maven dla Azure App Service nie będziesz używać fazy wdrażania dołączonej do cyklu życia Maven 'default'. Zamiast tego wdrożysz aplikację na platformie Azure za pomocą polecenia mvn azure-webapp:deploy.

Dodawanie wtyczki Maven dla usługi Azure App Service do projektu

Aby dodać wtyczkę Maven dla usługi Azure App Service do aplikacji internetowej, należy dodać kod XML dla azure-webapp-maven-plugin do pliku pom.xml projektu, jak pokazano poniżej:

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

Jednak wtyczka zapewnia wygodny i interaktywny sposób dodawania konfiguracji do pliku POM:

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

Wtyczka monituje o podanie informacji wymaganych do skonfigurowania planu usługi App Service. Po potwierdzeniu wybranych opcji wtyczka dodaje poprzedni element wtyczki i ustawienia wymagań do pliku pom.xml projektu, który konfiguruje aplikację internetową do uruchamiania w usłudze Azure App Service.

Notatka

Sprawdź dokumentację pluginu Maven dla usługi Azure App Servicelub Maven Central Repository, aby uzyskać informacje na temat najnowszej wersji pluginu Maven.

Opcje konfiguracji

W poprzedniej sekcji tej lekcji pokazano, jak interaktywnie skonfigurować aplikację internetową za pomocą wtyczki Maven dla usługi Azure App Service. Nie trzeba jednak interaktywnie uruchamiać konfiguracji. Jeśli chcesz, możesz ręcznie dodać kod XML wtyczki do pliku pom.xml projektu.

Poniższy fragment z adnotacjami z pliku pom.xml przedstawia niektóre z wymaganych ustawień:

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

Niektóre z odpowiednich opcji konfiguracji znajdują się w poniższej tabeli. Pełną listę opcji można znaleźć w dokumentacji wtyczki Maven dla usługi Azure App Service.

Znacznik Opcje
<javaVersion> System Linux obsługuje wersje 8, 11 i 17
System Windows obsługuje wersje 8, 11 i 17
<webContainer> System Linux obsługuje programy Tomcat, JBoss EAP 7.2 i Java SE
System Windows obsługuje programy Tomcat i Java SE
<resource> Określa, gdzie plik WAR lub JAR znajduje się w projekcie

Opcje wdrażania

Jeśli plan usługi App Service został już utworzony, możesz określić ustawienia tego planu w pliku pom.xml. Podczas wdrażania aplikacji internetowej na platformie Azure narzędzie Maven używa tych ustawień do wdrożenia nowej aplikacji w istniejącym planie usługi App Service.

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

Inną opcją jest umożliwienie azure-webapp-maven-plugin utworzenia planu usługi App Service podczas interaktywnego konfigurowania wtyczki. Ta opcja jest domyślnym zachowaniem wtyczki, jeśli nie określisz istniejącego planu usługi App Service w pliku pom.xml.

Niezależnie od tego, czy chcesz utworzyć plan usługi App Service interaktywnie, czy ręcznie, użyj tego samego polecenia narzędzia Maven, aby wdrożyć kod aplikacji na platformie Azure:

mvn package azure-webapp:deploy

W następnym ćwiczeniu wdrożysz aplikację internetową w usłudze Azure App Service.