Azure 개발자 CLI 템플릿 개요

Azure 개발자 CLI(azd) 템플릿은 샘플 애플리케이션 코드와 azd 구성 및 인프라 파일을 포함하는 표준 코드 리포지토리입니다. azd 템플릿을 사용하면 Azure 리소스를 프로비전하고, 애플리케이션을 배포하고, CI/CD 파이프라인을 구성하는 등의 작업을 수행할 수 있습니다. 고유한 템플릿을 만들거나 Awesome AZD와 같은 템플릿 리포지토리에서 기존 템플릿을 사용하여 시작할 수 있습니다. 이 문서에서는 다음 개념에 대해 알아봅니다.

  • 템플릿을 사용하여 앱 리소스를 프로비전하고 배포하는 방법 azd
  • 템플릿의 구조화 방법 azd
  • 기존 템플릿을 사용할지 또는 템플릿을 만들 것인지를 결정하는 방법
  • 기존 azd 시작 템플릿 살펴보기

Azure 개발자 CLI 템플릿을 사용하는 이유는 무엇인가요?

개발자는 클라우드용으로 올바르게 설계되고 구성된 환경 앱을 빌드할 때 많은 시간이 걸리고 어려운 작업에 직면하는 경우가 많습니다. 팀은 리소스 만들기, 구성 적용, 모니터링 및 로깅 설정, CI/CD 파이프라인 빌드 및 기타 작업과 같은 이러한 환경의 다양한 문제를 고려해야 합니다. azd 템플릿은 이러한 책임을 줄이고 간소화하여 개발자가 로컬 개발에서 Azure에 성공적으로 배포된 앱으로의 여정을 지원합니다.

예를 들어 다음 Azure 리소스가 필요한 티켓 관리 및 고객 통신 플랫폼을 운영하는 회사에서 근무한다고 가정해 보겠습니다.

  • 프런트 엔드 웹앱 및 백 엔드 API를 호스트하는 App Service 인스턴스 2개와 App Service 계획
  • 안전한 앱 비밀을 저장하는 Key Vault 인스턴스
  • 앱 데이터를 영구적으로 저장하는 Cosmos DB 데이터베이스
  • Application Insights 대시보드 등의 Azure Monitor 리소스
  • 스케일링 가능한 메시징을 관리하는 Service Bus
  • 변경 내용이 자동화된 반복 가능한 프로세스를 통해 안정적으로 배포되도록 보장하는 CI/CD 파이프라인

처음부터 azd 시작하는 대신 기존 아키텍처 템플릿을 활용하여 대부분의 리소스를 프로비전하고 배포할 수 있습니다. 그런 다음 개발 팀은 앱을 빌드하고 템플릿 아키텍처를 더 작게 조정하는 데 집중할 수 있습니다.

Azure 개발자 CLI 템플릿 작동 방식

Azure 개발자 CLI 템플릿은 다음과 같은 azd init azd up명령을 사용하도록 azd 설계되었습니다. 템플릿에는 Azure 리소스 프로비전 및 앱 코드 배포와 같은 작업을 수행하기 위해 명령에서 사용하는 구성 및 IaC(Infrastructure-as-code) 파일이 포함됩니다.

예를 들어 기존 템플릿을 사용하는 일반적인 azd 워크플로에는 다음 단계가 포함됩니다.

  1. 매개 변수를 azd init --template 사용하여 명령을 실행하여 GitHub에서 기존 템플릿을 복제합니다.

    azd init --template todo-nodejs-mongo
    
  2. 명령을 azd auth login 실행하여 Azure 구독에 인증합니다.

    azd auth login
    
  3. azd up 명령을 실행하여 Azure에 템플릿 리소스를 프로비전하고 배포합니다. 이 azd up 명령은 템플릿의 구성 및 IaC(Infrastructure-as-code) 파일을 활용하여 Azure 리소스를 프로비전하고 해당 리소스에 애플리케이션을 배포합니다.

    azd up
    
  4. Azure에서 환경이 설정되면 애플리케이션 기능 또는 Azure 리소스 템플릿을 로컬에서 수정한 다음 azd up을 다시 실행하여 변경 내용을 프로비전할 수 있습니다.

Azure Developer CLI 템플릿 구조 이해

모든 azd 템플릿은 규칙에 따라 azd 유사한 파일 구조를 공유합니다. 필요한 최소 자산에는 일반적으로 다음이 포함됩니다.

  • infra 폴더 - azd 템플릿에 대한 모든 Bicep 또는 Terraform IaC 파일이 포함되어 있습니다. azd는 이러한 파일을 실행하여 앱을 호스트하는 데 필요한 Azure 리소스를 만듭니다.

  • azure.yaml file - 프로젝트에서 하나 이상의 서비스를 정의하고 배포를 위해 폴더에 정의된 Azure 리소스에 매핑하는 infra 구성 파일입니다. 예를 들어 API 서비스 및 웹 프런트 엔드 서비스를 정의하고 배포를 위해 다른 Azure 리소스에 매핑할 수 있습니다.

  • .azure 폴더 - 리소스를 배포할 위치 또는 기타 구독 정보와 같은 필수 Azure 구성 및 환경 변수가 포함되어 있습니다.

  • src 폴더 - 배포 가능한 앱 소스 코드를 모두 포함합니다. 일부 azd 템플릿은 폴더를 src 제외하고 자체 애플리케이션 코드를 추가할 수 있도록 인프라 자산만 제공합니다.

    참고 항목

    폴더를 제외 src 하는 템플릿은 일반적으로 인프라 시작 템플릿으로 설계되었습니다.

azd 템플릿에는 다음 폴더 중 하나 이상이 선택적으로 포함됩니다.

  • .github 폴더 - azd의 기본 CI/CD 공급자인 GitHub Actions에 대한 CI/CD 워크플로 파일을 보유합니다.
  • .azdo 폴더 - CI/CD용 Azure Pipelines를 사용하기로 한 경우 이 폴더에서 워크플로 구성 파일을 정의합니다.
  • .devcontainer폴더 - 애플리케이션에 대한 Dev Container 환경을 설정할 수 있습니다.

예를 들어 일반적인 azd 템플릿은 다음 폴더 구조와 일치할 수 있습니다.

Azure 개발자 CLI 템플릿 구조를 보여 주는 스크린샷.

기존 템플릿으로 시작하거나 직접 만들기

azd 템플릿 작업에는 두 가지 주요 접근 방식이 있습니다.

  • 기존 azd 템플릿으로 시작합니다.
    • 이제 막 시작하는 azd 경우 또는 유사한 아키텍처 및 프레임워크를 사용하여 새 앱을 빌드할 템플릿을 찾고 있는 경우 이 옵션을 선택하는 것이 좋습니다.
  • 기존 프로젝트를 템플릿으로 azd 변환합니다.
    • 이는 기존 앱이 이미 있지만 기능과 azd 호환되도록 하려는 경우에 적합합니다.

다음 섹션에서는 이러한 두 옵션에 대한 자세한 정보를 제공합니다.

기존 템플릿으로 시작

azd 다양한 템플릿을 멋진 azd 템플릿 갤러리에서 사용할 수 있습니다. 이러한 템플릿은 다양한 개발 시나리오, 언어 프레임워크 및 Azure 서비스에 대한 인프라 및 애플리케이션 코드를 제공합니다. 로컬 애플리케이션 스택 또는 원하는 아키텍처에 맞는 템플릿을 찾으면 템플릿 코드를 직접 확장하고 바꿀 수 있습니다.

예를 들어 다음 azd 템플릿은 일반적인 앱 아키텍처 및 프레임워크에 대한 시작점을 제공합니다.

템플릿 앱 호스트 기술 스택
Azure에서 C# API 및 MongoDB를 사용하는 React Web App Azure App Service NoSQL용 Azure Cosmos DB, Bicep
Azure에서 C# API 및 SQL Database를 사용하는 React Web App Azure App Service Azure SQL Database, Bicep
Azure에서 C# API 및 SQL Database를 사용하는 Static React Web App + Functions Azure Static Web Apps, Azure Functions Azure SQL Database, Bicep

앱에 대한 새 azd 템플릿 만들기

기존 앱을 템플릿으로 azd 변환하여 프로비저닝 및 배포 기능을 사용하여 리포지토리를 향상시킬 수도 있습니다. 이 방법은 가장 많은 제어를 허용하고 앱에서 향후 개발 작업을 위해 재사용 가능한 솔루션을 생성합니다. 고유한 템플릿을 만드는 개략적인 단계는 다음과 같습니다.

  • azd init로 프로젝트 템플릿을 초기화합니다.
  • Bicep 또는 Terraform 인프라를 폴더에 infra 코드 파일로 만듭니다.
  • 앱 서비스를 Azure 리소스와 함께 연결하도록 azure.yaml 파일을 업데이트합니다.
  • azd up으로 프로비전 및 배포합니다.

다음 리소스는 사용자 고유의 템플릿을 만드는 방법에 대한 자세한 정보를 제공합니다.

템플릿 사용에 azd 대한 지침

Azure Developer CLI와 함께 사용하는 각 템플릿은 템플릿과 함께 제공되는 계약에 따라 해당 소유자(Microsoft일 수도 있고 아닐 수도 있음)가 라이선스를 부여합니다. 사용하려는 템플릿에 적용되는 라이선스를 결정하는 것은 사용자의 책임입니다.

Microsoft는 타사 템플릿에 대해 책임을 지지 않으며 보안, 개인 정보, 호환성 또는 성능 문제에 대해 이러한 템플릿을 차단하지 않습니다. Microsoft에서 제공하는 템플릿을 포함하여 Azure 개발자 CLI에서 사용하는 템플릿은 Microsoft 지원 프로그램 또는 서비스에서 지원되지 않습니다. Microsoft에서 제공하는 모든 템플릿은 모든 종류의 보증 없이 AS IS로 제공됩니다.

다음 단계