Örnek Java uygulaması dağıtımı
Bu ünitede Maven aracılığıyla dağıtılacak bir Spring Boot uygulaması yapılandıracaksınız. Ardından uygulamayı bir Azure App Service örneğine dağıtacaksınız. Bu ünitede evcil hayvan kliniği örneği gösterilmektedir.
Örnek uygulama
Sık kullandığınız komut satırı aracında aşağıdakileri kopyalayın:
git clone https://github.com/spring-projects/spring-petclinic.git
Ardından uygulamayı yerel olarak çalıştırın:
cd spring-petclinic
./mvnw package
java -jar target/*.jar
Örneği tarayıcıda açtığınızda aşağıdaki gibi görünmelidir:
Örnek uygulamayı buluta hazır olacak şekilde hazırlama
src klasöründe nesne, denetleyici ve depo sınıflarını bulacaksınız.
Java platformdan bağımsız olduğundan işletim sistemini seçebilirsiniz ancak Java sürümü dağıtım için önemlidir. Java sürümünü pom.xml dosyasında bulabilirsiniz.
<properties>
<java.version>17</java.version>
</properties>
Örnekte Java 8 kullanılır, bu nedenle Linux veya Windows gibi Azure App Service örneğimiz de Java 8 kullanmalıdır. Platform önemli olmadığından örneğimizde Linux kullanacağız.
pom.xml dosyasına bazı Azure bağımlılıkları eklemeliyiz. Aşağıdaki komutu çalıştırırsanız bağımlılıkları ekleme işlemi otomatik olarak gerçekleşebilir:
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.11.1:config
Bu komutun çıktısı, belirtilecek bazı seçenekleri ister. Bu seçenekler otomatik olarak pom.xmliçinde depolanır.
Please choose which part to config:
* 1: Application
2: Runtime
3: DeploymentSlot
Enter your choice: 1
Define value for appName [spring-petclinic-XXXX200]:
Define value for resourceGroup [spring-petclinic-XXXX200-rg]:
Define value for region [westeurope]:
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
Enter your choice: 1
Please confirm webapp properties
AppName : spring-petclinic-XXXX200
ResourceGroup : spring-petclinic-XXXX200-rg
Region : westeurope
PricingTier : Basic_B2
OS : Linux
RuntimeStack : JAVA 8-jre8
Deploy to slot : false
Confirm (Y/N) [Y]: y
[INFO] Saving configuration to pom.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
Gördüğünüz gibi, basit bir dağıtım için varsayılan değerleri kullanabilirsiniz.
pom.xml dosyası artık Azure'a maven tabanlı otomatik dağıtım için gerekli eklentiyi eklemiştir.
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-webapp-maven-plugin</artifactId>
<version>2.11.1</version>
<configuration>
<schemaVersion>V2</schemaVersion>
<subscriptionId>XXX-XXX-XXX</subscriptionId>
<resourceGroup>spring-petclinic-XXX200-rg</resourceGroup>
<appName>spring-petclinic-XXX200</appName>
<pricingTier>B2</pricingTier>
<region>westeurope</region>
<runtime>
<os>linux</os>
<javaVersion>jre8</javaVersion>
<webContainer>jre8</webContainer>
</runtime>
<deployment>
<resources>
<resource>
<directory>${project.basedir}/target</directory>
<includes>
<include>*.jar</include>
</includes>
</resource>
</resources>
</deployment>
</configuration>
</plugin>
Uygulamayı Maven ile dağıtma
Azure App Service'e dağıtım için zaten hazırız.
mvn package com.microsoft.azure:azure-webapp-maven-plugin:1.12.0:deploy
Bu komut testleri çalıştırır. Ardından otomatik olarak bir Azure App Service örneği oluşturur ve paketlenmiş uygulamayı dağıtır.
Tebrikler! Uygulama, Azure App Service'e başarıyla dağıtılır.