Azure Arc의 App Service 앱 만들기(미리 보기)
이 빠른 시작에서는 Azure Arc 지원 Kubernetes 클러스터에 대한 App Service 앱(미리 보기)을 만듭니다. 이 시나리오는 Linux 앱만 지원하며 기본 제공 언어 스택이나 사용자 지정 컨테이너를 사용할 수 있습니다.
필수 조건
Azure CLI 확장 추가
Azure Cloud Shell에서 Bash 환경을 시작합니다.
이러한 CLI 명령은 아직 핵심 CLI 집합의 일부가 아니므로 다음 명령을 통해 추가합니다.
az extension add --upgrade --yes --name customlocation
az extension remove --name appservice-kube
az extension add --upgrade --yes --name appservice-kube
1. 리소스 그룹 만들기
다음 명령을 실행합니다.
az group create --name myResourceGroup --location eastus
2. 사용자 지정 위치 가져오기
클러스터 관리자에서 사용자 지정 위치에 대한 다음 정보를 가져옵니다(사용자 지정 위치 만들기 참조).
customLocationGroup="<resource-group-containing-custom-location>"
customLocationName="<name-of-custom-location>"
다음 단계를 위해 사용자 지정 위치 ID를 가져옵니다.
customLocationId=$(az customlocation show \
--resource-group $customLocationGroup \
--name $customLocationName \
--query id \
--output tsv)
3. 앱 만들기
다음 예제에서는 Node.js 앱을 만듭니다. <app-name>
을 클러스터에 하나밖에 없는 이름으로 바꿉니다(유효한 문자는 a-z
, 0-9
, -
입니다).
지원되는 런타임:
설명 | CLI에 대한 런타임 값 |
---|---|
.NET Core 3.1 | DOTNETCORE|3.1 |
.NET 5.0 | DOTNETCORE|6.0 |
Node JS 12 | NODE|12-lts |
Node JS 14 | NODE|14-lts |
Python 3.6 | PYTHON|3.6 |
Python 3.7 | PYTHON|3.7 |
Python 3.8 | PYTHON|3.8 |
PHP 7.3 | PHP|7.3 |
PHP 7.4 | PHP|7.4 |
Java 8 | JAVA|8-jre8 |
Java 11 | JAVA|11-java11 |
Tomcat 8.5 | TOMCAT|8.5-jre8 |
Tomcat 8.5 | TOMCAT|8.5-java11 |
Tomcat 9.0 | TOMCAT|9.0-jre8 |
Tomcat 9.0 | TOMCAT|9.0-java11 |
az webapp create \
--resource-group myResourceGroup \
--name <app-name> \
--custom-location $customLocationId \
--runtime 'NODE|14-lts'
4. 일부 코드 배포
참고 항목
az webapp up
은 공개 미리 보기에서는 지원되지 않습니다.
Git를 사용하여 샘플 Node.js 앱을 가져오고 ZIP 배포를 사용하여 배포합니다. <app-name>
을 웹 앱 이름으로 바꿉니다.
git clone https://github.com/Azure-Samples/nodejs-docs-hello-world
cd nodejs-docs-hello-world
zip -r package.zip .
az webapp config appsettings set --resource-group myResourceGroup --name <app-name> --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
az webapp deploy --resource-group myResourceGroup --name <app-name> --src-path package.zip
5. Log Analytics를 사용하여 진단 로그 가져오기
참고 항목
Log Analytics를 사용하려면 App Service 확장을 설치할 때 Log Analytics를 사용하도록 설정했어야 합니다. Log Analytics 없이 확장을 설치했다면 이 단계를 건너뜁니다.
App Service 확장을 이용해 구성한 Log Analytics 작업 영역으로 이동한 다음 왼쪽 탐색 메뉴에서 Logs를 클릭합니다. 다음 샘플 쿼리를 실행하여 지난 72시간 동안의 로그를 표시합니다. <app-name>
을 웹 앱 이름으로 바꿉니다. 쿼리를 실행할 때 오류가 발생하면 10~15분 후에 다시 시도합니다(Log Analytics가 애플리케이션에서 로그 수신을 시작하는 데 지연이 있을 수 있음).
let StartTime = ago(72h);
let EndTime = now();
AppServiceConsoleLogs_CL
| where TimeGenerated between (StartTime .. EndTime)
| where AppName_s =~ "<app-name>"
Kubernetes 클러스터에서 호스트되는 모든 앱에 대한 애플리케이션 로그가 AppServiceConsoleLogs_CL
이라는 사용자 지정 로그 테이블에 있는 Log Analytics 작업 영역에 로깅됩니다.
Log_s에는 지정된 App Service의 애플리케이션 로그가 포함되며 AppName_s에는 App Service 앱 이름이 포함됩니다. Log_s 열에는 애플리케이션 코드를 통해 작성한 로그 외에 컨테이너 시작, 종료 및 Function Apps에 대한 로그도 포함됩니다.
Kusto 시작하기에서 로그 쿼리에 대해 자세히 알아볼 수 있습니다.
(선택 사항) 사용자 지정 컨테이너 배포
사용자 지정 컨테이너 앱을 만들려면 --deployment-container-image-name
을 이용해 az webapp create를 실행합니다. 프라이빗 리포지토리의 경우 --docker-registry-server-user
와 --docker-registry-server-password
를 추가합니다.
예를 들어 다음을 시도해 보세요.
az webapp create \
--resource-group myResourceGroup \
--name <app-name> \
--custom-location $customLocationId \
--deployment-container-image-name mcr.microsoft.com/appsvc/staticsite:latest
앱을 만든 후 이미지를 업데이트하고 싶다면 사용자 지정 컨테이너의 Docker 이미지 변경을 참조하세요.