Java 앱 배포 예제

완료됨

이 단원에서는 Maven을 통해 배포할 Spring Boot 애플리케이션을 구성합니다. 그런 다음, Azure App Service 인스턴스에 애플리케이션을 배포합니다. 이 단원에서는 애완 동물 클리닉의 예를 보여 줍니다.

예제 애플리케이션

즐겨 찾는 명령줄 도구에서 다음을 복제합니다.

git clone https://github.com/spring-projects/spring-petclinic.git

그런 다음, 애플리케이션을 로컬로 실행합니다.

cd spring-petclinic

./mvnw package

java -jar target/*.jar

브라우저에서 예제를 열면 다음과 같이 표시됩니다.

예제 애완 동물 클리닉 애플리케이션의 로컬 배포를 클릭하는 것을 보여주는 스크린샷.

클라우드가 준비되도록 예제 애플리케이션 준비

src 폴더에서 개체, 컨트롤러 및 리포지토리 클래스를 찾을 수 있습니다.

Java는 플랫폼에 독립적이므로 OS를 자유롭게 선택할 수 있지만 Java 버전은 배포에 중요합니다. pom.xml 파일에서 Java 버전을 찾을 수 있습니다.

<properties>
    <java.version>17</java.version>
</properties>

이 예제에서는 Java 8을 사용하므로 Linux 또는 Windows에 관계없이 Azure App Service 인스턴스도 Java 8을 사용해야 합니다. 플랫폼은 중요하지 않으므로 예제에 Linux를 사용합니다.

일부 Azure 종속성을 pom.xml 파일에 추가해야 합니다. 다음 명령을 실행하면 종속성 추가가 자동으로 발생할 수 있습니다.

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

해당 명령의 출력은 지정할 몇 가지 옵션을 요청합니다. 이러한 옵션은 pom.xml자동으로 저장됩니다.

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

보듯이 간단한 배포에 대한 기본값을 사용할 수 있습니다.

이제 pom.xml 파일은 Azure에 자동 Maven 기반 배포에 필요한 플러그 인을 추가했습니다.

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

Maven을 사용하여 애플리케이션 배포

Azure App Service에 배포할 준비가 이미 되어 있습니다.

mvn package com.microsoft.azure:azure-webapp-maven-plugin:1.12.0:deploy

이 명령은 테스트를 실행합니다. 그런 다음, Azure App Service 인스턴스를 자동으로 회전하고 패키지된 애플리케이션을 배포합니다.

배포된 예제 애완 동물 클리닉 애플리케이션의 스크린샷.

축하합니다! 앱이 Azure App Service에 성공적으로 배포되었습니다.