빠른 시작: 명령줄을 사용하여 기존 컨테이너 이미지 배포

Azure Container Apps 서비스를 사용하면 서버리스 플랫폼에서 마이크로 서비스 및 컨테이너화된 애플리케이션을 실행할 수 있습니다. Container Apps를 사용하면 수동 클라우드 인프라 구성 및 복잡한 컨테이너 오케스트레이터에 대한 걱정을 뒤로하고 컨테이너를 실행하는 이점을 제공합니다.

이 문서에서는 기존 컨테이너를 Azure Container Apps에 배포하는 방법을 보여 줍니다.

참고 항목

프라이빗 레지스트리 권한 부여는 레지스트리 사용자 이름 및 암호를 통해 지원됩니다.

필수 조건

설정

CLI에서 Azure에 로그인하려면 다음 명령을 실행하고 프롬프트에 따라 인증 프로세스를 완료합니다.

az login

최신 버전의 CLI를 실행하고 있는지 확인하려면 업그레이드 명령을 실행합니다.

az upgrade

그런 다음 CLI용 Azure Container Apps 확장을 설치하거나 업데이트합니다.

Azure CLI에서 명령을 실행하거나 Azure PowerShell의 모듈에서 Az.App cmdlet을 실행할 az containerapp 때 누락된 매개 변수에 대한 오류가 발생하는 경우 최신 버전의 Azure Container Apps 확장이 설치되어 있어야 합니다.

az extension add --name containerapp --upgrade

참고 항목

2024년 5월부터 Azure CLI 확장은 기본적으로 미리 보기 기능을 더 이상 사용하도록 설정하지 않습니다. Container Apps 미리 보기 기능에 액세스하려면 .를 사용하여 Container Apps 확장을 --allow-preview true설치합니다.

az extension add --name containerapp --upgrade --allow-preview true

이제 현재 확장 또는 모듈이 설치되었으므로 Microsoft.AppMicrosoft.OperationalInsights 네임스페이스를 등록합니다.

참고 항목

Azure Container Apps 리소스가 Microsoft.Web 네임스페이스에서 Microsoft.App 네임스페이스로 마이그레이션되었습니다. 자세한 내용은 2022년 3월 Microsoft.Web에서 Microsoft.App으로 네임스페이스 마이그레이션을 참조하세요.

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

환경 변수 설정

다음 환경 변수를 설정합니다. <자리 표시자>는 해당 값으로 바꿉니다.

RESOURCE_GROUP="<RESOURCE_GROUP>"
LOCATION="<LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<CONTAINERAPPS_ENVIRONMENT>"

Azure 리소스 그룹 만들기

컨테이너 앱 배포와 관련된 서비스를 구성하는 리소스 그룹을 만듭니다.

az group create \
  --name $RESOURCE_GROUP \
  --location "$LOCATION"

환경 만들기

Azure Container Apps의 환경은 컨테이너 앱 그룹 주위에 보안 경계를 만듭니다. 동일한 환경에 배포된 컨테이너 앱은 동일한 가상 네트워크에 배포되고 동일한 Log Analytics 작업 영역에 로그를 씁니다.

환경을 만들려면 다음 명령을 실행합니다.

az containerapp env create \
  --name $CONTAINERAPPS_ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --location "$LOCATION"

컨테이너 앱 만들기

이제 환경이 만들어졌으므로 첫 번째 컨테이너 앱을 배포할 수 있습니다. containerapp create 명령을 사용하여 컨테이너 이미지를 Azure Container Apps에 배포합니다.

이 문서에 표시된 예제에서는 일반적인 명령과 함께 사용자 지정 컨테이너 이미지를 사용하는 방법을 보여 줍니다. 컨테이너 이미지에는 다음 항목에 대한 추가 매개 변수가 필요할 수 있습니다.

  • 수정 버전 모드 설정
  • 비밀 정의
  • 환경 변수 정의
  • 컨테이너 CPU 또는 메모리 요구 사항 설정
  • Dapr 활성화 및 구성
  • 외부 또는 내부 수신 사용
  • 최소 및 최대 복제본 값 또는 크기 조정 규칙 제공

이런 매개 변수의 값을 create 명령에 제공하는 방법에 대한 자세한 내용을 보려면 az containerapp create --help를 실행하거나 온라인 참조를 방문합니다. Azure Container Registry에 대한 자격 증명을 생성하려면 az acr credential show를 사용합니다.

CONTAINER_IMAGE_NAME=<CONTAINER_IMAGE_NAME>
REGISTRY_SERVER=<REGISTRY_SERVER>
REGISTRY_USERNAME=<REGISTRY_USERNAME>
REGISTRY_PASSWORD=<REGISTRY_PASSWORD>

(<자리 표시자>는 해당 값으로 바꿉니다.)

az containerapp create \
  --name my-container-app \
  --resource-group $RESOURCE_GROUP \
  --image $CONTAINER_IMAGE_NAME \
  --environment $CONTAINERAPPS_ENVIRONMENT \
  --registry-server $REGISTRY_SERVER \
  --registry-username $REGISTRY_USERNAME \
  --registry-password $REGISTRY_PASSWORD
az containerapp create \
  --image <REGISTRY_CONTAINER_NAME> \
  --name my-container-app \
  --resource-group $RESOURCE_GROUP \
  --environment $CONTAINERAPPS_ENVIRONMENT

If you have enabled ingress on your container app, you can add `--query properties.configuration.ingress.fqdn` to the `create` command to return the public URL for the application.

이 명령을 실행하기 전에 <REGISTRY_CONTAINER_NAME>을 레지스트리 경로 및 태그를 포함하여 공용 컨테이너 레지스트리 위치의 전체 이름으로 바꿉니다. 예를 들어 유효한 컨테이너 이름은 mcr.microsoft.com/k8se/quickstart:latest입니다.

배포 확인

성공적인 배포를 확인하려면 Log Analytics 작업 영역을 쿼리하면 됩니다. 로그를 쿼리할 수 있으려면 분석이 처음으로 도착할 때까지 배포 후 몇 분 정도 기다려야 할 수 있습니다. 이는 컨테이너 앱에서 구현된 콘솔 로깅에 따라 달라집니다.

콘솔 로그 메시지를 보려면 다음 명령을 사용합니다.

LOG_ANALYTICS_WORKSPACE_CLIENT_ID=`az containerapp env show --name $CONTAINERAPPS_ENVIRONMENT --resource-group $RESOURCE_GROUP --query properties.appLogsConfiguration.logAnalyticsConfiguration.customerId --out tsv`

az monitor log-analytics query \
  --workspace $LOG_ANALYTICS_WORKSPACE_CLIENT_ID \
  --analytics-query "ContainerAppConsoleLogs_CL | where ContainerAppName_s == 'my-container-app' | project ContainerAppName_s, Log_s, TimeGenerated" \
  --out table

리소스 정리

이 애플리케이션을 계속 사용하지 않으려면 다음 명령을 실행하여 이 빠른 시작에서 만든 모든 리소스와 함께 리소스 그룹을 삭제합니다.

주의

다음 명령은 지정된 리소스 그룹과 그 안에 포함된 모든 리소스를 삭제합니다. 이 빠른 시작의 범위에 속하지 않는 리소스가 지정된 리소스 그룹에 있는 경우에도 해당 리소스가 삭제됩니다.

az group delete --name $RESOURCE_GROUP

문제가 있나요? Azure Container Apps 리포지토리에서 문제를 열어 GitHub에 알려주세요.

다음 단계