빠른 시작: 명령줄을 사용하여 기존 컨테이너 이미지 배포
Azure Container Apps 서비스를 사용하면 서버리스 플랫폼에서 마이크로 서비스 및 컨테이너화된 애플리케이션을 실행할 수 있습니다. Container Apps를 사용하면 수동 클라우드 인프라 구성 및 복잡한 컨테이너 오케스트레이터에 대한 걱정을 뒤로하고 컨테이너를 실행하는 이점을 제공합니다.
이 문서에서는 기존 컨테이너를 Azure Container Apps에 배포하는 방법을 보여 줍니다.
참고 항목
프라이빗 레지스트리 권한 부여는 레지스트리 사용자 이름 및 암호를 통해 지원됩니다.
필수 조건
- 활성 구독이 있는 Azure 계정.
- GitHub 계정이 없는 경우 무료로 만들 수 있습니다.
- Azure CLI를 설치합니다.
- Azure Container Registry 같은 퍼블릭 또는 프라이빗 컨테이너 레지스트리에 액세스합니다.
설정
CLI에서 Azure에 로그인하려면 다음 명령을 실행하고 프롬프트에 따라 인증 프로세스를 완료합니다.
az login
최신 버전의 CLI를 실행하고 있는지 확인하려면 업그레이드 명령을 실행합니다.
az upgrade
그런 다음 CLI용 Azure Container Apps 확장을 설치하거나 업데이트합니다.
Azure CLI에서 az containerapp
명령을 실행하거나 Azure PowerShell의 Az.App
모듈에서 cmdlet을 실행할 때 누락된 매개 변수에 대한 오류가 발생하는 경우 최신 버전의 Azure Container Apps 확장이 설치되어 있어야 합니다.
az extension add --name containerapp --upgrade
참고 항목
2024년 5월부터 Azure CLI 확장 기능은 기본적으로 미리 보기 기능을 사용하도록 설정하지 않습니다. Container Apps 미리 보기 기능에 액세스하려면 --allow-preview true
를 사용하여 Container Apps 확장을 설치합니다.
az extension add --name containerapp --upgrade --allow-preview true
이제 현재 확장 또는 모듈이 설치되었으므로 Microsoft.App
및 Microsoft.OperationalInsights
네임스페이스를 등록합니다.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
환경 변수 설정
다음 환경 변수를 설정합니다. 값을 <PLACEHOLDERS>
다음 값으로 바꿉다.
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"
컨테이너 앱 만들기
이제 환경이 만들어졌으므로 첫 번째 컨테이너 앱을 배포할 수 있습니다.
환경 변수를 설정합니다.
값을
<PLACEHOLDERS>
대체합니다. 사용자 계정 이름은 일반적으로 전자 메일 주소 형식(예:username@domain.com
)입니다.CONTAINER_APP_NAME=my-container-app KEY_VAULT_NAME=my-key-vault USER_PRINCIPAL_NAME=<USER_PRINCIPAL_NAME> SECRET_NAME=my-secret-name CONTAINER_IMAGE_NAME=<CONTAINER_IMAGE_NAME> REGISTRY_SERVER=<REGISTRY_SERVER> REGISTRY_USERNAME=<REGISTRY_USERNAME>
키 자격 증명 모음을 만듭니다.
Azure Key Vault와 같은 서비스를 사용하여 컨테이너 레지스트리 암호를 저장하면 항상 값이 안전하게 유지됩니다. 이 섹션의 단계에서는 키 자격 증명 모음을 만들고, 컨테이너 레지스트리 암호를 Key Vault에 저장한 다음, 코드에서 사용할 암호를 검색하는 방법을 보여 줍니다.
az keyvault create --name $KEY_VAULT_NAME --resource-group $RESOURCE_GROUP
키 자격 증명 모음에서 비밀을 관리할 수 있는 권한을 사용자 계정에 부여합니다.
KEY_VAULT_ID=$(az keyvault show --name $KEY_VAULT_NAME --query id --output tsv) az role assignment create --role "Key Vault Secrets Officer" --assignee "$USER_PRINCIPAL_NAME" --scope "$KEY_VAULT_ID"
키 자격 증명 모음에 컨테이너 레지스트리 암호를 저장합니다.
값으로 대체
<REGISTRY_PASSWORD>
합니다.az keyvault secret set --vault-name $KEY_VAULT_NAME --name $SECRET_NAME --value "<REGISTRY_PASSWORD>"
키 자격 증명 모음에서 컨테이너 레지스트리 암호를 검색합니다.
REGISTRY_PASSWORD=$(az keyvault secret show --name $SECRET_NAME --vault-name $KEY_VAULT_NAME --query value --output tsv)
Azure Container Apps에 컨테이너 이미지를 배포합니다.
az containerapp create \ --name $CONTAINER_APP_NAME \ --location $LOCATION \ --resource-group $RESOURCE_GROUP \ --image $CONTAINER_IMAGE_NAME \ --environment $CONTAINERAPPS_ENVIRONMENT \ --registry-server $REGISTRY_SERVER \ --registry-username $REGISTRY_USERNAME \ --registry-password $REGISTRY_PASSWORD
컨테이너 앱에서 수신을 사용하도록 설정한 경우
create
명령에--query properties.configuration.ingress.fqdn
을 추가하여 애플리케이션에 대한 공용 URL을 반환할 수 있습니다.
환경 변수를 설정합니다.
CONTAINER_APP_NAME=my-container-app CONTAINER_IMAGE_NAME=mcr.microsoft.com/k8se/quickstart:latest
Azure Container Apps에 컨테이너 이미지를 배포합니다.
az containerapp create \ --image $CONTAINER_IMAGE_NAME \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --environment $CONTAINERAPPS_ENVIRONMENT
컨테이너 앱에서 수신을 사용하도록 설정한 경우
create
명령에--query properties.configuration.ingress.fqdn
을 추가하여 애플리케이션에 대한 공용 URL을 반환할 수 있습니다.
배포 확인
성공적인 배포를 확인하려면 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 == $CONTAINER_APP_NAME | project ContainerAppName_s, Log_s, TimeGenerated" \
--out table
리소스 정리
이 애플리케이션을 계속 사용하지 않으려면 다음 명령을 실행하여 이 빠른 시작에서 만든 모든 리소스와 함께 리소스 그룹을 삭제합니다.
주의
다음 명령은 지정된 리소스 그룹과 그 안에 포함된 모든 리소스를 삭제합니다. 이 빠른 시작의 범위에 속하지 않는 리소스가 지정된 리소스 그룹에 있는 경우에도 해당 리소스가 삭제됩니다.
az group delete --name $RESOURCE_GROUP
팁
문제가 있나요? Azure Container Apps 리포지토리에서 문제를 열어 GitHub에 알려주세요.