Web uygulamanızı Azure App Service’e dağıtma

Tamamlandı

azure-webapp-maven-plugin, Java geliştiricileri için iki hedefe sahiptir. Bunlardan birincisi, Azure App Service eklentisini yönetmeyi ve yapılandırmayı kolaylaştırmak, ikincisi ise Maven projelerini Azure App Service'e dağıtma sürecini basitleştirmektir. Bir önceki alıştırmada hızlıca bir "hello world" örnek Java web uygulaması oluşturdunuz ve yerel ortamda test ettiniz. Projenize Azure App Service için Maven eklentisi ekleyerek uygulamanızı Azure App Service'e dağıtabilirsiniz.

Bu ünitede, şirketinizin uygulamalarını Azure Uygulaması Hizmeti'nde barındırma seçeneklerine göz atacak, ardından Maven projenize öğesini eklemeyi ve yapılandırmayı azure-webapp-maven-plugin öğreneceksiniz.

Azure App Service’e giriş

Azure App Service; şirketinizin web sitelerini, web uygulamalarını, REST API'lerini ve diğer uygulama kodlarını Azure'da barındırmanızı sağlar. Proje kodunuz bulutta çalışır ve bunun için altyapı sağlamanız veya yapılandırmanız gerekmez. Web uygulamanızı Azure App Service'te çalıştırmak, Azure üzerinde çalıştırmanın getirdiği tüm avantajları sunar. Uygulamanız genel olarak kullanılabilir hale gelir, otomatik olarak ölçeklendirilir ve yerleşik güvenlik ve uyumluluk özelliklerine sahip olur. Üstelik yalnızca kullandığınız kaynaklar için ödeme yaparsınız.

Azure Uygulaması Hizmeti, geliştiricilerin uygulamalarını en rahat kullandıkları dilleri kullanarak yazmaya devam etmesini sağlayan birden çok programlama dilini destekler. Java, .NET Core, Python, Node.js vb. diğer dillerle birlikte birinci sınıf bir vatandaştır. Oluşturduğunuz web uygulamalarını Linux, Windows veya bir Docker kapsayıcısının içinde barındırabilirsiniz. Web uygulamanızı Azure'a dağıtmadan önce Azure'da işletim sistemini ve fiyatlandırma katmanını belirten bir App Service planı oluşturursunuz. Bu plan, uygulamanızın ihtiyaç duyduğu sağlanan işlem kaynaklarının boyutunu belirler.

Maven iş akışları

Maven, proje oluşturmaya yönelik üç yerleşik yaşam döngüsüne sahiptir: default, clean ve site. Burada default yaşam döngüsü, şu aşamaları içerir:

Aşama Açıklama
compile Kodunuzu derler
package Kodunuzu JAR veya WAR olarak paketler
install Paketi yerel deponuza yükler
deploy Son paketi uzak deponuza kopyalar

Ancak, Azure Uygulaması Hizmeti için Maven Eklentisi'ni kullanırken Maven'in default yaşam döngüsüne dahil olan dağıtım aşamasını kullanmayacaksınız. Bunun yerine mvn azure-webapp:deploy komutuyla uygulamanızı Azure'a dağıtırsınız.

Azure App Service için Maven eklentisini projenize ekleme

Azure Uygulaması Hizmeti için Maven Eklentisini web uygulamanıza eklemek için azure-webapp-maven-plugin xml dosyasını projenizin pom.xml dosyasına eklersiniz; örneğin:

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

Ancak eklenti, POM dosyanıza yapılandırma eklemek için kullanışlı ve etkileşimli bir yol sağlar:

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

Eklenti, App Service planını yapılandırmak için gereken bilgileri ister. Seçimlerinizi onayladıktan sonra eklenti, projenizin pom.xml dosyasına web uygulamanızı Azure Uygulaması Hizmetinde çalışacak şekilde yapılandıran önceki eklenti öğesini ve gerekli ayarları ekler.

Not

Maven eklentisinin en son sürümü hakkında bilgi için lütfen Azure App Service için Maven eklentisi belgelerini veya Maven Central Repository sayfasını inceleyin.

Yapılandırma seçenekleri

Bu ünitenin önceki bölümlerinde web uygulamanızı yapılandırma amacıyla Azure App Service için Maven eklentisinin etkileşimli bir şekilde kullanılması gösterilmiştir. Ancak yapılandırmayı etkileşimli bir şekilde çalıştırmanız gerekmez. İsterseniz eklentinin XML öğelerini projenizin pom.xml dosyasına el ile de ekleyebilirsiniz.

Bir dosyadan pom.xml aşağıdaki açıklamalı alıntı gerekli ayarlardan bazılarını gösterir:

<plugin> 
  <groupId>com.microsoft.azure</groupId>  
  <artifactId>azure-webapp-maven-plugin</artifactId>  
  <version>2.13.0</version>  
  <configuration> 
    <schemaVersion>v2</schemaVersion>  
    <subscriptionId>11111111-1111-1111-1111-111111111111</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> 

İlgili yapılandırma seçeneklerinden bazıları aşağıdaki tabloda yer alır. Seçeneklerin tam listesine Azure App Service için Maven eklentisi belgelerinden ulaşabilirsiniz.

Etiket Seçenekler
<javaVersion> Linux 8, 11 ve 17 sürümlerini destekler
Windows 8, 11 ve 17 sürümlerini destekler
<webContainer> Linux Tomcat, JBoss EAP 7.2 ve Java SE'yi destekler
Windows, Tomcat ve Java SE'i destekler
<resource> WAR veya JAR dosyasının projedeki konumunu belirtir

Dağıtım seçenekleri

Önceden bir App Service planı oluşturduysanız, bu planın ayarlarını pom.xml dosyanızda belirtebilirsiniz. Web uygulamanızı Azure'a dağıttığınızda Maven, yeni uygulamanızı mevcut App Service planına dağıtmak için bu ayarları kullanır.

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

Bir diğer seçenek de azure-webapp-maven-plugin eklentisini etkileşimli olarak yapılandırırken App Service planını sizin için oluşturmasını sağlamaktır. pom.xml dosyanızda var olan bir App Service planını belirtmediğinizde bu seçenek, eklentinin varsayılan davranışıdır.

App Service planını etkileşimli veya el ile oluşturmayı tercih edin, uygulama kodunuzu Azure'a dağıtmak için aynı Maven komutunu kullanırsınız:

mvn package azure-webapp:deploy

Bir sonraki alıştırmada, web uygulamanızı Azure App Service'e dağıtacaksınız.