다음을 통해 공유


빠른 시작: 로컬 소스 코드에서 Azure Container Apps로 빌드 및 배포

이 문서에서는 선택한 프로그래밍 언어를 사용하여 로컬 소스 코드에서 마이크로 서비스를 빌드하고 Azure Container Apps에 배포하는 방법을 보여 줍니다. 이 빠른 시작에서는 음악 앨범의 정적 컬렉션을 반환하는 백 엔드 웹 API 서비스를 만듭니다.

참고 항목

이 샘플 애플리케이션은 두 가지 버전으로 제공됩니다. 원본에 Dockerfile이 포함된 버전입니다. 다른 버전에는 Dockerfile이 없습니다. 소스 코드를 가장 잘 반영하는 버전을 선택합니다. 컨테이너를 처음 사용하는 경우 상단에서 Dockerfile 없음 옵션을 선택합니다.

다음 스크린샷은 배포하는 앨범 API 서비스의 출력을 보여 줍니다.

앨범 API 엔드포인트의 응답 스크린샷.

필수 조건

이 프로젝트를 완료하려면 다음 항목이 필요합니다.

요건 지침
Azure 계정 계정이 없으면 무료 계정을 만듭니다. 계속 진행하려면 Azure 구독에 대한 기여자 또는 소유자 권한이 필요합니다.

자세한 내용은 Azure Portal을 사용하여 Azure 역할 할당을 참조하세요.
Azure CLI Azure CLI를 설치합니다.

설정

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

az login

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

az upgrade

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

az extension add --name containerapp --upgrade

이제 현재 확장 또는 모듈이 설치되었으므로 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

환경 변수 만들기

이제 Azure CLI 설정이 완료되었으므로 이 문서 전체에서 사용되는 환경 변수를 정의할 수 있습니다.

bash 셸에서 다음 변수를 정의합니다.

export RESOURCE_GROUP="album-containerapps"
export LOCATION="canadacentral"
export ENVIRONMENT="env-album-containerapps"
export API_NAME="album-api"

샘플 코드 가져오기

원하는 언어로 API 샘플 애플리케이션을 다운로드하고 추출합니다.

컴퓨터에 소스 코드를 다운로드합니다.

다운로드의 압축을 풀고 containerapps-albumapi-csharp-main/src 폴더로 변경합니다.

컴퓨터에 소스 코드를 다운로드합니다.

다운로드의 압축을 풀고 containerapps-albumapi-csharp-buildpack/src 폴더로 변경합니다.


컨테이너 앱 빌드 및 배포

containerapp up 명령을 사용하여 첫 번째 컨테이너 앱을 빌드하고 배포합니다. 이 명령은 다음을 수행합니다.

  • 리소스 그룹 만들기
  • Azure Container Registry 만들기
  • 컨테이너 이미지를 빌드하고 레지스트리에 푸시합니다.
  • Log Analytics 작업 영역을 사용하여 Container Apps 환경 만들기
  • 빌드된 컨테이너 이미지를 사용하여 컨테이너 앱 만들기 및 배포
  • 리소스 그룹 만들기
  • 환경의 일부로 기본 레지스트리 만들기
  • 애플리케이션의 언어와 런타임을 검색하고 적절한 Buildpack을 사용하여 이미지를 빌드합니다.
  • Azure Container Apps 기본 레지스트리에 이미지 푸시
  • Log Analytics 작업 영역을 사용하여 Container Apps 환경 만들기
  • 빌드된 컨테이너 이미지를 사용하여 컨테이너 앱 만들기 및 배포

up 명령은 리포지토리의 루트에 있는 Docker 파일을 사용하여 컨테이너 이미지를 빌드합니다. Dockerfile의 EXPOSE 명령은 수신 트래픽을 컨테이너로 보내는 데 사용되는 포트인 대상 포트를 정의했습니다.

up 명령이 Dockerfile을 찾지 못하면 자동으로 Buildpack을 사용하여 애플리케이션 원본을 실행 가능한 컨테이너로 전환합니다. Buildpack이 사용자를 대신하여 빌드를 실행하려고 하므로 수신 트래픽을 보낼 포트를 up 명령에 알려야 합니다.

다음 코드 예에서 .(점)은 containerapp up이 추출된 샘플 API 애플리케이션의 src 디렉터리에서 실행되도록 지시합니다.

az containerapp up \
  --name $API_NAME \
  --location $LOCATION \
  --environment $ENVIRONMENT \
  --source .
az containerapp up \
  --name $API_NAME \
  --location $LOCATION \
  --environment $ENVIRONMENT \
  --ingress external \
  --target-port 8080 \
  --source .

Important

컨테이너 앱을 기존 리소스 그룹에 배포하려면 containerapp up 명령에 --resource-group yourResourceGroup을 포함합니다.

배포 확인

FQDN을 웹 브라우저에 복사합니다. 웹 브라우저에서 FQDN의 /albums 엔드포인트로 이동합니다.

앨범 API 엔드포인트의 응답 스크린샷.

제한

소스 코드 업로드의 최대 크기는 200MB입니다. 업로드가 한도를 초과하면 오류 413이 반환됩니다.

리소스 정리

프런트 엔드 배포 자습서를 계속 진행하지 않으려면 다음 명령을 사용하여 이 빠른 시작 중에 만들어진 Azure 리소스를 제거할 수 있습니다.

주의

다음 명령은 지정된 리소스 그룹과 그 안에 포함된 모든 리소스를 삭제합니다. 그룹에 이 빠른 시작의 범위를 벗어나는 리소스가 포함되어 있으면 해당 리소스도 삭제됩니다.

az group delete --name $RESOURCE_GROUP

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

다음 단계

이 빠른 시작을 완료한 후 자습서: Azure Container Apps에서 마이크로 서비스 간 통신으로 계속 진행하여 API를 호출하는 프런트 엔드 애플리케이션을 배포하는 방법을 알아볼 수 있습니다.