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

브라우저에서 예제를 열면 다음과 같습니다.

Screenshot that shows clicking through the local deployment of the example pet clinic application.

애플리케이션 예제를 클라우드에서 사용하도록 준비

src 폴더에 개체, 컨트롤러, 리포지토리 클래스가 있습니다.

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

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

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

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

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 파일로 자동 Maven 기반 배포용 필수 플러그 인이 Azure에 추가되었습니다.

 <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 인스턴스를 자동으로 실행하고 패키지한 애플리케이션을 배포합니다.

Screenshot of the deployed example pet clinic application.

축하합니다! Azure App Service에 앱을 배포했습니다.