Web uygulamanızı Azure App Service’e dağıtma
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.