Maven을 사용하여 Azure App Service에 Open Liberty 마이크로 웹앱 배포
이 빠른 시작에서는 Azure App Service Web Apps
Azure 구독이 없는 경우, 시작하기 전에 무료 계정을 만드십시오.
중요하다
Azure App Service는 Microsoft에서 엔지니어링, 운영 및 지원되지만, Azure App Service를 기반으로 실행하는 소프트웨어에는 자체 지원 계획 지원 및 사용 조건이 적용됩니다. 이 문서에 설명된 소프트웨어 지원에 대한 자세한 내용은 문서에 나열된 해당 소프트웨어의 기본 페이지를 참조하세요. Open Liberty에 대한 지원은 Open Liberty 지원 페이지참조하세요. WebSphere Liberty에 대한 지원은 IBM Cloud 지원참조하세요.
필수 구성 요소
- 로컬에서 또는 Azure Cloud Shell을 통해 Azure CLI을 사용할 수 있습니다.
- 지원되는 JDK(Java Development Kit)입니다. Azure에서 개발할 때 사용할 수 있는 JDK에 대한 자세한 내용은 Azure 및 Azure Stack
Java 지원을 참조하세요. - Apache Maven버전 3.
Azure CLI에 로그인
Open Liberty 애플리케이션을 배포하는 Maven 플러그 인을 가져오는 가장 간단하고 쉬운 방법은 Azure CLI사용하는 것입니다.
Azure CLI를 사용하여 Azure 계정에 로그인합니다.
az login
지침에 따라 로그인 프로세스를 완료합니다.
MicroProfile Starter에서 샘플 앱 만들기
이 섹션에서는 Open Liberty 애플리케이션을 만들고 로컬로 테스트합니다.
웹 브라우저를 열고 MicroProfile Starter 사이트로 이동합니다.
Open Liberty 런타임이 선택된 MicroProfile Starter를 보여 주는
다음 표의 값을 사용하여 MicroProfile Starter의 값을 채웁다.
필드 값 그룹 ID com.microsoft.azure.samples.openliberty artifactId openliberty-hello-azure MicroProfile 버전 MP 4.0 Java SE 버전 Java 11 MicroProfile 런타임 오픈 리버티 사양 예제 메트릭, OpenAPI DOWNLOAD을 선택하여 프로젝트를 다운로드합니다.
다음 명령어를 사용하여 보관 파일의 압축을 풉니다.
unzip openliberty-hello-azure.zip
로컬 환경에서 애플리케이션 실행
다음 명령을 사용하여 디렉터리를 완료된 프로젝트로 변경합니다.
cd openliberty-hello-azure/
다음 명령을 사용하여 Maven을 사용하여 프로젝트를 빌드합니다.
mvn clean package
다음 명령을 사용하여 프로젝트를 실행합니다.
java -jar target/openliberty-hello-azure.jar
웹 브라우저를 사용하여 로컬로 이동하여 웹앱을 테스트합니다. 예를 들어
curl
이 사용 가능한 경우 다음 명령을 사용할 수 있습니다.curl http://localhost:9080/data/hello
다음 메시지가 표시됩니다. Hello World
Azure App Service에 대한 Maven 플러그 인 구성
이 섹션에서는 Maven이 Linux의 Azure App Service에 앱을 배포할 수 있도록 Open Liberty 프로젝트 pom.xml 파일을 구성합니다.
배포를 구성하려면 다음 Maven 명령을 실행합니다.
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.3.0:config
메시지가 표시되면 다음 옵션을 선택합니다.
입력 필드 입력/값 선택 OS에 대한 값 정의(기본값: Linux): 1. linux javaVersion에 대한 값 정의(기본값: Java 8): 2. Java 11 runtimeStack에 대한 값 정의(기본값: TOMCAT 8.5): 2. TOMCAT 8.5 확인(Y/N) y 메모
Tomcat을 사용하지 않더라도 현재는
TOMCAT 8.5
을 선택하세요. 자세한 구성 과정에서 값을TOMCAT 8.5
에서Java
로 수정합니다.이 예제에서는 특정 버전의 Azure App Service Maven 플러그 인을 사용합니다. 사용 가능한 최신 버전을 사용하는 것이 좋습니다. mvnrepository.com같은 사이트를 방문하여 최신 버전의 수를 검색할 수 있습니다.
이 명령은 다음 예제와 유사한 출력을 생성합니다.
[INFO] Scanning for projects... [INFO] [INFO] ---< com.microsoft.azure.samples.openliberty:openliberty-hello-azure >---- [INFO] Building openliberty-hello-azure 1.0-SNAPSHOT [INFO] --------------------------------[ war ]--------------------------------- [INFO] [INFO] --- azure-webapp-maven-plugin:2.3.0:config (default-cli) @ openliberty-hello-azure --- Auth type: AZURE_CLI Default subscription: Username: [INFO] Subscription: [INFO] It may take a few minutes to load all Java Web Apps, please be patient. Define value for OS [Linux]: 1: Windows * 2: Linux 3: Docker Enter your choice: Define value for javaVersion [Java 8]: * 1: Java 8 2: Java 11 Enter your choice: 2 Define value for webContainer [Tomcat 8.5]: 1: Jbosseap 7 * 2: Tomcat 8.5 3: Tomcat 9.0 Enter your choice: Define value for pricingTier [P1v2]: 1: B1 2: B2 3: B3 4: D1 5: EP1 6: EP2 7: EP3 8: F1 * 9: P1v2 10: P1v3 11: P2v2 12: P2v3 13: P3v2 14: P3v3 15: S1 16: S2 17: S3 18: Y1 Enter your choice: Please confirm webapp properties Subscription Id : ********-****-****-****-************ AppName : openliberty-hello-azure-1642075767899 ResourceGroup : openliberty-hello-azure-1642075767899-rg Region : centralus PricingTier : P1v2 OS : Linux Java : Java 11 Web server stack: Tomcat 8.5 Deploy to slot : false Confirm (Y/N) [Y]: [INFO] Saving configuration to pom. [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 21.981 s [INFO] Finished at: 2022-01-13T21:09:39+09:00 [INFO] ------------------------------------------------------------------------
Azure Web Apps에서 애플리케이션을 실행하기 위해 /src/main/liberty/config/ 디렉터리에서 server.xml 파일을 수정합니다. 다음 예제와 같이 파일에서
<httpEndpoint>
태그에host="*"
줄을 추가합니다.<httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="9080" httpsPort="9443"/>
pom.xml 파일에서
runtime
항목을TOMCAT 8.5
에서java
로 수정하고,deployment
을*.war
에서*.jar
로 수정합니다. 그런 다음PORT
,WEBSITES_PORT
및WEBSITES_CONTAINER_START_TIME_LIMIT
<configuration>
섹션에<appSettings>
섹션을 추가합니다.azure-webapp-maven-plugin
대한 XML 항목은 다음 예제와 유사해야 합니다.<plugin> <groupId>com.microsoft.azure</groupId> <artifactId>azure-webapp-maven-plugin</artifactId> <version>2.3.0</version> <configuration> <schemaVersion>v2</schemaVersion> <subscriptionId>********-****-****-****-************</subscriptionId> <resourceGroup>openliberty-hello-azure-1642075767899-rg</resourceGroup> <appName>openliberty-hello-azure-1642075767899</appName> <pricingTier>P1v2</pricingTier> <region>japaneast</region> <runtime> <os>Linux</os> <javaVersion>Java 11</javaVersion> <webContainer>java</webContainer> </runtime> <appSettings> <property> <name>PORT</name> <value>9080</value> </property> <property> <name>WEBSITES_PORT</name> <value>9080</value> </property> <property> <name>WEBSITES_CONTAINER_START_TIME_LIMIT</name> <value>600</value> </property> </appSettings> <deployment> <resources> <resource> <directory>${project.basedir}/target</directory> <includes> <include>*.jar</include> </includes> </resource> </resources> </deployment> </configuration> </plugin>
Azure에 앱 배포
이 문서의 이전 섹션에서 모든 설정을 구성한 후에는 웹앱을 Azure에 배포할 준비가 된 것입니다. 이렇게 하려면 다음 단계를 사용합니다.
이전에 사용하던 명령 프롬프트 또는 터미널 창에서 다음 명령을 사용하여 pom.xml 파일을 변경한 경우 Maven을 사용하여 JAR 파일을 다시 빌드합니다.
mvn clean package
다음 명령을 사용하여 Maven을 사용하여 Azure에 웹앱을 배포합니다.
mvn azure-webapp:deploy
배포에 성공하면 다음 출력이 표시됩니다.
[INFO] Scanning for projects... [INFO] [INFO] ---< com.microsoft.azure.samples.openliberty:openliberty-hello-azure >---- [INFO] Building openliberty-hello-azure 1.0-SNAPSHOT [INFO] --------------------------------[ war ]--------------------------------- [INFO] [INFO] --- azure-webapp-maven-plugin:2.3.0:deploy (default-cli) @ openliberty-hello-azure --- Auth type: AZURE_CLI [INFO] Creating web app openliberty-hello-azure-1642075767899... [INFO] Successfully created Web App openliberty-hello-azure-1642075767899. [INFO] Trying to deploy external resources to openliberty-hello-azure-1642075767899... [INFO] Successfully deployed the resources to openliberty-hello-azure-1642075767899 [INFO] Trying to deploy artifact to openliberty-hello-azure-1642075767899... [INFO] Deploying (/Users/Downloads/openliberty-hello-azure/target/openliberty-hello-azure.jar)[jar] ... [INFO] Successfully deployed the artifact to https://openliberty-hello-azure-1642075767899.azurewebsites.net [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:11 min [INFO] Finished at: 2022-01-13T21:29:50+09:00 [INFO] ------------------------------------------------------------------------
Maven은 Azure에 웹앱을 배포합니다. 웹앱 또는 웹앱 계획이 아직 없는 경우 웹앱이 만들어집니다. 웹앱이 출력에 표시된 URL에 표시되기까지 몇 분 정도 걸릴 수 있습니다. 웹 브라우저에서 URL로 이동합니다. 다음 화면이 표시됩니다.
앱을 배포한 후 Azure Portal통해 관리할 수 있습니다. 웹앱이 리소스 그룹에 나열됩니다. 웹앱에 대한 개요 페이지에서 찾아보기 선택하여 웹앱에 액세스할 수 있습니다. 배포가 성공하고 실행되었는지 확인합니다.
실행 중인 App Service에서 로그 스트림 확인
전체 로그를 보거나 tail
사용하여 실행 중인 App Service에서 로그의 끝을 볼 수 있습니다. 사이트 코드에 있는 console.log
에 대한 모든 호출이 터미널에 표시됩니다.
az webapp log tail \
--resource-group openliberty-hello-azure-1642075767899-rg \
--name openliberty-hello-azure-1642075767899
리소스 정리
Azure 리소스가 더 이상 필요하지 않은 경우 다음 단계를 사용하여 리소스 그룹을 삭제하여 배포한 리소스를 정리합니다.
- Azure Portal의 메뉴에서
Resource group
선택합니다. - 필터 이름 필드에 마이크로프로파일 입력합니다. 이 자습서에서 만든 리소스 그룹에는 이 접두사가 있어야 합니다.
- 이 자습서에서 만든 리소스 그룹을 선택합니다.
- 메뉴에서 리소스 그룹 삭제를 선택합니다.
다음 단계
MicroProfile 및 Azure에 대해 자세히 알아보려면 Azure 설명서 센터의 MicroProfile을 계속 진행하세요.
추가 리소스
이 문서에서 설명하는 다양한 기술에 대한 자세한 내용은 다음 문서를 참조하세요.
- Azure Web Apps용 Maven 플러그인은.
- Azure CLI 2.0사용하여 Azure 서비스 주체를 만듭니다.
- Maven 설정 참조.