Azure 개발자 CLI 템플릿 탐색 및 사용자 지정

이 빠른 시작에서는 Azure 개발자 CLI 템플릿을 탐색하고 사용자 지정합니다. hello-azd 템플릿은 Azure 개발자 CLI(azd)를 사용하여 애플리케이션을 빌드하고 Azure에 배포하기 위한 간단한 시작점을 제공합니다. 이 빠른 시작에서는 빠른 시작 - azd 템플릿 배포 문서에 설명된 개념을 확장합니다.

필수 조건

브라우저에서 이 빠른 시작을 완료하려면 다음이 필요합니다.

  • GitHub Codespaces에 대한 액세스

또는 로컬 도구를 사용하여 이 빠른 시작을 완료하려면 다음을 수행합니다.

Azure 개발자 CLI 템플릿 구조 살펴보기

azd 템플릿은 추가 자산이 포함된 표준 코드 리포지토리입니다. 모든 azd 템플릿은 규칙에 따라 azd 유사한 파일 구조를 공유합니다.

  • infra 폴더 - azd 템플릿을 위한 모든 Bicep 또는 Terraform 인프라 코드 파일이 포함되어 있습니다. azd 는 이러한 파일을 실행하여 앱에 필요한 Azure 리소스를 만듭니다.
  • src 폴더 - 앱 소스 코드를 포함합니다. azd 에서 구성을 기반으로 코드를 패키지하고 배포합니다 azure.yaml.
  • azure.yaml file - 프로젝트의 소스 코드 폴더를 배포를 위해 폴더에 정의된 Azure 리소스에 매핑하는 infra 구성 파일입니다. 예를 들어 별도의 폴더에 API 서비스 및 웹 프런트 엔드 서비스를 정의하고 배포를 위해 다른 Azure 리소스에 매핑할 수 있습니다.
  • .azure 폴더 - 리소스를 배포할 위치와 같은 필수 Azure 구성을 포함합니다.

예를 들어 대부분의 azd 템플릿은 다음 폴더 구조와 일치합니다.

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

템플릿 구조에 대한 자세한 내용은 azd 문서를 참조하세요.

샘플 템플릿 설정

hello-azd 는 단일 명령을 사용하여 Azure에 배포할 수 있는 필수 기능을 azd 보여 주도록 설계된 샘플 템플릿입니다. 템플릿은 azd에 대한 정보와 지원 티켓을 업로드하고 볼 수 있는 작은 데모 도구를 갖춘 친숙한 UI를 제공합니다.

템플릿은 다음 기능을 지원합니다.

  • 컨테이너화된 앱을 Azure Container Apps에 패키지 및 배포
  • Azure Cosmos DB 데이터베이스와 같이 앱에 필요한 Azure 리소스를 만듭니다.
  • 명령을 사용하여 CI/CD 파이프라인을 자동으로 구성할 수 있습니다.azd pipeline config

템플릿을 설정하려면 다음 단계를 수행합니다.

  1. GitHub에서 hello-azd 템플릿 리포지토리 를 엽니다.

  2. 코드 단추를 선택한 다음, Codespaces를 선택합니다.

  3. 브라우저에서 완전히 구성된 개발 환경을 시작하는 새 Codespace를 만듭니다. 환경이 초기화될 때까지 잠시 기다려야 할 수 있습니다.

  4. Codespaces 환경이 로드된 후, azd 템플릿을 azd init 명령을 사용하여 초기화하십시오.

    azd init -t hello-azd
    
  5. 메시지가 표시되면 azd 환경의 이름을 예를 들어 helloazd와 같이 입력합니다.

템플릿 탐색

원하는 도구에서 서식 파일이 열려 있으면 폴더 구조를 탐색하여 템플릿의 작동 방식을 azd 살펴볼 수 있습니다.

  1. 폴더를 src 확장하여 앱의 소스 코드를 봅니다.

    • 템플릿에는 hello-azd 샘플 티켓 데이터에 대해 azd 알아보고 관리하는 간단한 UI를 제공하는 컨테이너화된 .NET 앱이 포함되어 있습니다. azd 에서는 JavaScript 및 Python과 같은 다른 언어도 지원합니다.
    • 실행 azd up하면 앱이 컨테이너 이미지로 패키지되고 Azure Container Apps에 배포됩니다.
  2. 폴더를 infra 확장하여 코드 파일로 인프라를 탐색합니다.

    • 이 템플릿은 Bicep 파일(.bicep)을 사용하여 Azure 리소스를 만들지만 Terraform(.tf)을 사용할 수도 있습니다.

    • main.bicep 파일은 infra 폴더에 있는 Azure Storage 계정과 같은 다른 Bicep 모듈을 참조하여 Azure 리소스를 생성합니다.

      // Omitted...
      
      // Create a storage account
      module storage './core/storage/storage-account.bicep' = {
          name: 'storage'
          scope: rg
          params: {
          name: !empty(storageAccountName) ? storageAccountName : '${abbrs.storageStorageAccounts}${resourceToken}'
          location: location
          tags: tags
          containers: [
              {
              name: 'attachments'
              }
          ]
          }
      }
      
      // Omitted...
      
  3. 템플릿의 루트에서 파일을 열어 azure.yaml 필수 템플릿 구성을 봅니다.

    • 템플릿은 라는 aca하나의 서비스를 정의합니다.

    • 서비스 구성은 aca 폴더의 소스 코드를 패키지하고 배포하도록 azd에게 지시하며, 이 코드는 이전에 탐색한 Bicep 모듈에 의해 프로비전된 Azure Container App에 전송됩니다.

    • 구성은 docker 앱을 패키지하고 컨테이너로 배포하도록 지시 azd 합니다.

      metadata:
        template: hello-azd-dotnet  # Specifies the template being used
      name: azd-starter  # Name of the project
      services:
        aca:  # Define the Azure Container App service
          project: ./src  # Path to the source code
          language: csharp  # Programming language
          host: containerapp  # Hosting service
          docker:
            path: ./Dockerfile  # Location of the Dockerfile
      

템플릿 업데이트

템플릿을 변경하여 배포된 앱 및 리소스에 영향을 줄 수 있습니다. 이 예제에서는 앱을 두 가지 약간 변경하고 배포된 결과를 탐색합니다.

  • 앱 헤더 시작 텍스트를 사용자 고유의 메시지로 업데이트
  • 만든 스토리지 계정을 업데이트하여 하나 대신 두 개의 Blob 컨테이너를 만듭니다.

이러한 변경을 수행하려면 다음 단계를 완료합니다.

  1. 폴더에서 src > Components > Pages 구성 요소를 엽니다 Home.razor .

  2. 페이지 맨 위에 있는 Hello, Azure Developer CLI! 헤더 텍스트를 Hello, 사용자 지정된 템플릿 과 같은 다른 메시지로 바꾸고 변경 내용을 저장합니다.

    <MudText Typo="Typo.h2" GutterBottom="true">Hello, customized template!</MudText>
    
  3. 폴더에서 infra 파일을 엽니다 main.bicep .

  4. 스토리지 계정 및 Blob 컨테이너를 만드는 75줄 주위의 Bicep 코드 블록을 찾습니다.

    // Create a storage account
    module storage './core/storage/storage-account.bicep' = {
      name: 'storage'
      scope: rg
      params: {
        name: !empty(storageAccountName) ? storageAccountName : '${abbrs.storageStorageAccounts}${resourceToken}'
        location: location
        tags: tags
        containers: [
          {
            name: 'attachments'
          }
        ]
      }
    }
    

    해당 코드를 다음 코드 조각으로 바꿉니다.

    // Create a storage account
    module storage './core/storage/storage-account.bicep' = {
      name: 'storage'
      scope: rg
      params: {
        name: !empty(storageAccountName) ? storageAccountName : '${abbrs.storageStorageAccounts}${resourceToken}'
        location: location
        tags: tags
        containers: [
          {
            name: 'attachments'
          },
          {
            name: 'archive'
          }
        ]
      }
    }
    
    

템플릿 실행

변경한 후 명령을 사용하여 azd up 앱 리소스를 프로비전하고 배포합니다.

  1. 프로젝트 디렉터리에서 터미널을 엽니다.

  2. 템플릿을 프로비전하고 배포하려면 다음 명령을 실행합니다 azd up .

    azd up
    

    이 명령은 다음을 수행합니다.

    • 배포용 앱 패키지
    • 필요한 Azure 리소스 프로비전
    • 업데이트된 변경 내용으로 애플리케이션 배포
    • 배포된 애플리케이션의 URL 인쇄
  3. 업데이트된 애플리케이션을 라이브로 보려면 브라우저의 콘솔 출력 로그에 azd 인쇄된 URL을 엽니다.

    업데이트된 앱 헤더를 보여 주는 스크린샷

  4. 생성된 두 개의 Blob 컨테이너를 보려면 Azure Portal에서 만든 스토리지 계정으로 이동합니다.

    생성된 Blob 컨테이너를 보여 주는 스크린샷.

결론

이 빠른 시작에서는 템플릿의 hello-azd 구조를 탐색하고, 애플리케이션 및 인프라를 사용자 지정하고, Azure 개발자 CLI를 사용하여 Azure에 배포했습니다. 고급 시나리오를 보려면 다른 템플릿을 살펴보거나 설명서를 자세히 살펴보 azd 세요.

다음 단계