이미지를 업데이트하고 웹앱을 자동으로 다시 배포
지속적인 배포는 빠르게 변화하는 많은 조직의 핵심 기능입니다. 혼란을 최소화하면서 최신 버전의 소프트웨어를 빠르게 배포해야 합니다.
예제 시나리오에서 개발 팀은 새로운 기능과 향상된 기능을 웹앱에 정기적으로 추가합니다. 따라서 개발 팀은 지속적인 배포 방법을 채택하도록 결정했습니다.
이 단원에서는 Azure Container Registry에서 이미지를 사용하는 웹앱의 지속적인 배포를 구성합니다.
웹후크란?
Azure App Service는 웹후크를 통해 지속적인 배포를 지원합니다. 웹후크는 Container Registry에서 제공되는 서비스입니다. 서비스 및 애플리케이션은 웹후크를 구독하여 레지스트리의 이미지 업데이트에 대한 알림을 받을 수 있습니다. App Service를 사용하는 웹앱은 Container Registry 웹후크를 구독하여 웹앱이 포함된 이미지의 업데이트에 대한 알림을 받을 수 있습니다. 이미지가 업데이트되고 App Service에서 알림을 받으면 앱에서 자동으로 사이트를 다시 시작하고 최신 버전의 이미지를 끌어옵니다.
Azure Container Registry 작업 기능은 무엇인가요?
또한 Azure Container Registry의 작업(task) 기능을 사용하여 소스 코드가 변경될 때마다 이미지를 자동으로 다시 빌드할 수 있습니다. 코드가 포함된 GitHub 리포지토리를 모니터링하고 변경될 때마다 빌드를 트리거하도록 Container Registry 작업을 구성할 수 있습니다. 빌드가 성공적으로 완료되면 Container Registry에서 이미지를 리포지토리에 저장할 수 있습니다. 웹앱이 App Service에서 지속적으로 통합되도록 설정되어 있으면 웹후크를 통해 알림을 받고 앱을 업데이트합니다.
이러한 두 가지 기능을 사용하여 App Service에서 연속 통합을 사용하도록 설정해보겠습니다.
App Service에서 지속적인 통합 사용
Azure Portal에 있는 App Service 리소스의 배포 센터 페이지에서는 지속적인 통합 설정을 자동화합니다. 지속적인 배포를 설정하면 App Service에서 Azure Container Registry의 웹후크를 App Service 엔드포인트에 알리도록 구성합니다. 이 엔드포인트에 도달하는 레지스트리의 알림을 받으면 앱이 다시 시작되고 최신 버전의 컨테이너 이미지를 끌어옵니다.
Azure Container Registry 작업을 사용하여 원본 제어로 연속 통합 확장
Container Registry 작업은 명령줄에서 만들어야 합니다. 이전에 이미지를 만드는 데 실행한 az acr build
명령과 달리 az acr task create
명령은 수명이 긴 작업을 만들고 등록합니다.
다음 명령에서는 buildwebapp이라는 작업을 만드는 방법을 보여 줍니다. 이 작업은 GitHub 리포지토리에서 이 모듈에 사용되는 샘플 웹앱을 모니터링합니다. 변경이 커밋될 때마다 작업은 GitHub의 소스 코드에서 webimage
Docker 이미지를 빌드하여 Azure Container Registry의 레지스트리에 저장합니다. 이 명령을 실행하기 전에 리포지토리에 웹 후크를 만들 수 있는 권한이 있는 GitHub 개인용 액세스 토큰을 만들어야 합니다. 프라이빗 리포지토리의 경우 토큰에는 전체 리포지토리 읽기 권한도 필요합니다.
az acr task create --registry <container_registry_name> --name buildwebapp --image webimage --context https://github.com/MicrosoftDocs/mslearn-deploy-run-container-app-service.git --file Dockerfile --git-access-token <access_token>