Alıştırma - Java web uygulamanızı Azure App Service’e dağıtma
Bu ünitede, uygulamanızı Azure App Service'e dağıtacaksınız.
Azure App Service nedir?
Azure App Service, Azure tarafından sunulan ve Tomcat çalıştırmak için kullanabileceğiniz hizmet olarak platform (PaaS) bileşenidir. Windows ve Linux ortamı, güvenlik, yük dengeleme, otomatik ölçeklendirme ve DevOps tümleştirme gibi özelliklere sahiptir. İşletim sistemi ve Tomcat ile ilgili yönetim görevlerini Azure'a devredip uygulama tasarlamaya odaklanabilirsiniz.
Örnek JSF uygulamaları alma
Java web uygulaması dağıtmak için, burada gösterildiği gibi GitHub'dan bir PrimeFaces JavaServer Faces (JSF) web uygulaması alabilirsiniz:
git clone https://github.com/yoshioterada/Deploy-PrimeFaces-JSF-Web-App-on-Tomcat-9.0
Kopyaladıktan sonra dizinde aşağıdaki dosyaları görürsünüz:
Deploy-PrimeFaces-JSF-Web-App-on-Tomcat-9.0
├── pom.xml
└── src
└── main
├── java
│ └── com
│ └── microsoft
│ └── azure
│ └── samples
│ ├── controller
│ │ └── TodoListController.java
│ ├── dao
│ │ ├── ItemManagement.java
│ │ └── TodoItemManagementInMemory.java
│ └── model
│ └── TodoItem.java
└── webapp
├── META-INF
│ └── context.xml
├── WEB-INF
│ ├── beans.xml
│ ├── classes
│ │ └── logging.properties
│ ├── faces-config.xml
│ └── web.xml
└── index.xhtml
Azure App Service için Maven Eklentisi
Microsoft, Java geliştiricilerinin Uygulamaları Azure'a dağıtmasını kolaylaştırmak amacıyla Azure Uygulaması Hizmeti için Maven Eklentisi sağlar. Bu eklentiyi kullanarak uygulamanızı kolayca yapılandırabilir ve Azure'a dağıtabilirsiniz. Azure Uygulaması Hizmeti için Maven Eklentisi'ni kullanmak üzere aşağıdaki komutu yürütür.
Azure App Service için Maven eklentisini yapılandırma
Azure Uygulaması Hizmeti için Maven Eklentisini yapılandırmak için aşağıdaki komutu yürütür:
mvn com.microsoft.azure:azure-webapp-maven-plugin:1.12.0:config
Komutun ardından istemde bazı sorular görünür. Uygun öğeleri girip gerekli ayarları yapın. Aşağıdaki seçenekleri girin:
Madde | Giriş değeri |
---|---|
Abonelik | Azure aboneliğinizi seçin |
İşletim sistemi değerini tanımlayın | 1: Linux |
Fiyatlandırma katmanı değerini tanımlayın | P1v2 |
Java sürümü değerini tanımlayın | 1: Java 8 veya 2: Java 11 |
Çalışma zamanı yığını değerini tanımlayın | 3: TOMCAT 9.0 |
Onayla (E/H) | Y |
Komutu yürüttkten sonra şu sonuçlar görüntülenir:
mvn com.microsoft.azure:azure-webapp-maven-plugin:1.12.0:config
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
[INFO] Scanning for projects...
[INFO]
[INFO] -----------< com.microsoft.azure.samples:azure-javaweb-app >------------
[INFO] Building azure-javaweb-app Maven Webapp 1.0-SNAPSHOT
[INFO] --------------------------------[ war ]---------------------------------
[INFO]
[INFO] --- azure-webapp-maven-plugin:1.12.0:config (default-cli) @ azure-javaweb-app ---
Available subscriptions:
* 1: My Subscription (********-****-****-****-************)
Please choose a subscription [My Subscription]: [Enter]
[INFO] It may take a few minutes to load all Java Web Apps, please be patient.
[WARNING] There are no Java Web Apps in current subscription, please follow the following steps to create a new one.
Define value for OS [Linux]:
* 1: Linux
2: Docker
3: Windows
Enter your choice:
Define value for pricingTier [P1v2]:
1: B1
2: B2
3: B3
4: D1
5: F1
* 6: P1v2
7: P2v2
8: P3v2
9: S1
10: S2
11: S3
Define value for javaVersion [Java 8]:
* 1: Java 8
2: Java 11
Enter your choice: 1
Define value for runtimeStack:
1: Jbosseap 7.2
* 2: Tomcat 8.5
3: Tomcat 9.0
Enter your choice: 3
Please confirm webapp properties
Subscription Id : f77aafe8-6be4-4d3d-bd9c-d0c37687ef70
AppName : azure-javaweb-app-1604982052600
ResourceGroup : azure-javaweb-app-1604982052600-rg
Region : westeurope
PricingTier : PremiumV2_P1v2
OS : Linux
Java : Java 8
Web server stack: Tomcat 9.0
Deploy to slot : false
Confirm (Y/N) [Y]: y
[INFO] Saving configuration to pom.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 37.656 s
[INFO] Finished at: 2020-10-01T17:24:02+09:00
[INFO] ------------------------------------------------------------------------
pom.xml
dosyanızın <plugins>
bölümünde yeni bir bölüm göreceksiniz.
Kaynak grubu adını, örnek adını ve dağıtım konumunu değiştirmek isterseniz <resourceGroup>
, <appName>
ve <region>
girişlerini değiştirebilirsiniz.
<plugins>
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-webapp-maven-plugin</artifactId>
<version>1.12.0</version>
<configuration>
<schemaVersion>V2</schemaVersion>
<subscriptionId>********-****-****-****-************</subscriptionId>
<resourceGroup>azure-javaweb-app</resourceGroup>
<appName>azure-javaweb-app-1601463451101</appName>
<pricingTier>P1v2</pricingTier>
<region>japaneast</region>
<runtime>
<os>linux</os>
<javaVersion>Java 8</javaVersion>
<webContainer>TOMCAT 9.0</webContainer>
</runtime>
<deployment>
<resources>
<resource>
<directory>${project.basedir}/target</directory>
<includes>
<include>*.war</include>
</includes>
</resource>
</resources>
</deployment>
</configuration>
</plugin>
</plugins>
Uygulamayı derleme ve Azure App Service'e dağıtma
Azure App Service dağıtım ayarlarını tamamladığınıza göre kaynak kodu yeniden derleyebilirsiniz:
mvn clean package
Derlendiğinde, uygulamanızı dağıtmak için Azure Web Apps için Maven Eklentisi komutunu kullanın. Şu kodu yürütün:
mvn azure-webapp:deploy
Dağıtım tamamlandığında aşağıdaki ileti görüntülenir.
[INFO] Successfully deployed the artifact to https://azure-javaweb-app-1601463451101.azurewebsites.net
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:15 min
[INFO] Finished at: 2020-11-19T15:55:55+09:00
[INFO] ------------------------------------------------------------------------
Dağıtılan uygulamanın genel URL'si satırda Successfully deployed the artifact to
görüntülenir. Aşağıdaki örnekte olduğu gibi URL'nize bir tarayıcıyla erişin:
https://azure-javaweb-app-1601463451101.azurewebsites.net
Komut satırından günlük akışını doğrulama
Günlük akışına erişmek için aşağıdaki CLI komutunu yürütün:
az webapp log tail -g azure-javaweb-app -n azure-javaweb-app-1601463451101
Aşağıdaki sonucu alırsınız:
Alıştırma özeti
Bu ünitede java web uygulaması oluşturmayı ve paketlemeyi, Azure Web Apps için Maven Eklentisini kullanmayı ve uygulamanızı Azure Uygulaması Hizmeti'ne dağıtmayı öğrendiniz. Bu adımlar yalnızca JSF uygulamaları için değil aynı zamanda çoğu Java web uygulaması için de geçerlidir.