Microsoft Learn에서 배우는 'Java on Azure'

신입사원이 전체 연수를 마치고 가배속에 오는 시기가 다가왔습니다. 신인씨에게 Java나 Azure를 배우게 할 때, 자신이라면 무엇을 추천할까? 라고 생각했는데 「Microsoft Learn」이 머리에 떠올랐습니다.

라고 말하면서도 나 자신 실제로 시도한 적이 없었기 때문에 「Azure 상의 Java 의 개요」를 해 보았습니다.

손을 움직이는 부분은 샘플 Java 앱 배포로 Spring Boot의 웹 애플리케이션을 Azure에 배포하는 내용입니다.

로컬 환경에서 실행



이번에 내가 시도한 환경은 다음과 같습니다. 최근에는 로컬 환경에 아무것도 설치하지 않고 Docker+Remote Container를 이용하고 있습니다. OS는 Windows 10과 macOS 둘 다 시도하고 똑같이 움직였습니다.
  • 도커

  • Visual Studio Code
  • Visual Studio Code Remote - Containers
  • Docker for Visual Studio Code
  • Java Extension Pack


  • 사용한 dockerfile은 다음과 같습니다.
    FROM maven:3.8.1-openjdk-11
    
    RUN curl -sL https://aka.ms/InstallAzureCLIDeb | bash
    

    Docker의 이미지는 maven입니다.을 사용했습니다. 배포 중에 필요한 Azure CLI을 넣습니다.

    그럼 구체적인 순서를 소개하겠습니다. dockerfile을 VSCode에서 열면 화면 왼쪽 하단을 클릭하고 Reopen in Container를 선택합니다. 잠시 후 컨테이너의 환경으로 바뀝니다.



    다음은 샘플 Java 앱 배포와 같습니다. 먼저 Git에서 샘플 앱을 복제합니다.
    git clone https://github.com/spring-projects/spring-petclinic.git
    

    그런 다음 다음 명령으로 패키징합니다.
    ./mvnw package
    

    이 명령은 컨테이너 환경에서 다음 오류가 발생했습니다. 원인을 조사하면 maven 이미지에서 사용하는 환경 변수 (MAVEN_CONFIG)가 중복되는 문제 인 것 같습니다.
    [ERROR] Unknown lifecycle phase "/root/.m2". 
    

    다음 명령으로 해결했습니다.
    mvn clean install
    

    실행하여 화면이 표시되면 OK입니다.
    java -jar target/*.jar
    



    Azure에서 실행



    그런 다음 샘플 앱을 Azure에 배포합니다. Learn 단계에서는 갑자기 azure-webapp-maven-plugin 명령을 실행하고 있지만 다음 오류가 발생했습니다.
    [ERROR] Failed to execute goal com.microsoft.azure:azure-webapp-maven-plugin:1.13.0:config (default-cli) on project spring-petclinic: Cannot find any subscriptions in current account. -> [Help 1]
    

    먼저 Azure CLI로 로그인해야 하는 것 같습니다.
    az login
    

    로그인한 후 다음을 수행합니다.
    mvn com.microsoft.azure:azure-webapp-maven-plugin:1.13.0:config
    

    성공하면 Azure에서 구축하는 환경 구성을 듣기 때문에 대답합니다. 그 결과 pom.xml에 Azure 배포에 대한 정의가 자동으로 추가됩니다.

    마지막은 다음 명령으로 배포합니다.
    mvn package com.microsoft.azure:azure-webapp-maven-plugin:1.13.0:deploy
    

    잠시 기다리면 안전하게 Azure에 배포 할 수있었습니다!



    이번에는 컨테이너 환경에서 시도했기 때문에 일부 절차에 차이가 있습니다. 하지만 이렇게 Microsoft Learn을 사용하여 학습하는 것은 기본적인 지식이나 조작을 기억하는데 도움이 될 것 같습니다. 이대로 앞의 콘텐츠도 시도해보고 싶습니다.

    좋은 웹페이지 즐겨찾기