프로젝트가 Azure Developer CLI와 호환되도록 만들기

Azure 개발자 CLI(azd)를 사용하면 개발자가 GitHub에서 호스트되는 템플릿을 사용하여 클라우드용 애플리케이션을 스캐폴드할 수 있습니다 . Microsoft는 시작하는 데 사용할 수 있는 몇 가지 템플릿을 제공합니다. 이 문서에서는 사용자 고유의 애플리케이션 azd 을 호환하도록 만드는 방법을 알아봅니다.

템플릿 아키텍처 이해

다음 다이어그램에서는 템플릿을 만드는 프로세스에 대한 간략한 개요를 azd 제공합니다.

Diagram of Azure Developer CLI template workflow.

모든 azd 템플릿은 규칙에 따라 azd 동일한 파일 구조를 갖습니다. 다음 계층 구조는 이 자습서에서 빌드할 디렉터리 구조를 보여줍니다.

├── .azdo                                        [ Configures an Azure Pipeline ]
├── .devcontainer                                [ For DevContainer ]
├── .github                                      [ Configures a GitHub workflow ]
├── .vscode                                      [ VS Code workspace configurations ]
├── .azure                                       [ Stores Azure configurations and environment variables ]
├── infra                                        [ Contains infrastructure as code files ]
│   ├── main.bicep/main.tf                       [ Main infrastructure file ]
│   ├── main.parameters.json/main.tfvars.json    [ Parameters file ]
│   └── core/modules                             [ Contains reusable Bicep/Terraform modules ]
└── azure.yaml                                   [ Describes the app and type of Azure resources]

템플릿 초기화

azd init 명령은 Azure에서 앱 리소스를 프로비전하고 배포하기 위해 애플리케이션을 초기화하는 데 사용됩니다. 이 명령은 다음 섹션에 설명된 템플릿을 초기화하기 위해 서로 다른 두 워크플로 중에서 선택하라는 메시지를 표시합니다.

  • 현재 디렉터리의 코드 사용: 프로그래밍 언어, 프레임워크 및 데이터베이스 시스템과 같이 디렉터리의 코드를 분석하여 사용하는 기술을 ID로 지정하도록 지시 azd 하려면 이 옵션을 선택합니다. azd 그러면 서비스 정의 파일 및 코드로서의 인프라 파일이 있는 폴더와 같은 azure.yaml 템플릿 자산이 infra 자동으로 생성됩니다.

  • 템플릿 선택: 기존 템플릿을 시작점으로 사용하려면 이 옵션을 선택합니다. 기본적으로 azd Awesome AZD 갤러리에서 템플릿을 찾아볼 수 있지만 고유한 템플릿 갤러리를 구성할 수도 있습니다. 템플릿을 선택하면 해당 템플릿의 자산이 기존 프로젝트 디렉터리에 추가됩니다.

이러한 각 워크플로의 세부 정보는 아래 섹션에 설명되어 있습니다.

  1. 사용자 고유의 프로젝트를 사용하여 앞으로의 단계를 수행할 수 있습니다. 그러나 샘플 애플리케이션을 사용하여 수행하려는 경우 다음 시작 리포지토리를 컴퓨터의 빈 디렉터리에 복제합니다.

    git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
    
  2. 선택한 명령줄 도구를 프로젝트의 루트 디렉터리로 엽니다.

  3. azd init 명령을 실행하여 템플릿을 초기화합니다.

    azd init
    
  4. 메시지가 표시되면 현재 디렉터리에서 코드를 사용하는 옵션을 선택합니다. azd 는 프로젝트를 분석하고 검색된 서비스 및 권장 Azure 호스팅 리소스에 대한 요약을 제공합니다.

  5. 확인을 선택하고 내 앱을 계속 초기화합니다. azd 는 프로젝트 루트 디렉터리에 다음 자산을 생성합니다.

    • azure.yaml 적절한 서비스 정의가 있는 파일입니다.
    • infra 프로젝트를 프로비전하고 Azure에 배포할 코드로서의 인프라 파일이 있는 폴더입니다.
    • .azure 파일에 환경 변수가 설정된 폴더입니다.env.

    이 검색 및 생성 프로세스에 대한 자세한 내용은 이 문서의 뒷부분에서 제공합니다.

  6. 생성된 파일은 제공된 샘플 앱에 대해 그대로 작동하며 사용자 고유의 앱에도 사용할 수 있습니다. 필요한 경우 생성된 파일을 필요에 맞게 수정할 수 있습니다. 예를 들어 앱이 식별된 리소스를 초과하는 Azure 리소스를 사용하는 경우 폴더에서 infra 코드로서의 인프라 파일을 추가로 수정해야 할 azd수 있습니다.

  7. azd up 명령을 실행하여 Azure에 앱을 프로비전하고 배포합니다.

    azd up
    
  8. 메시지가 표시되면 원하는 구독 및 위치를 선택하여 프로비전 및 배포 프로세스를 시작합니다.

  9. 프로세스가 완료되면 출력의 링크를 azd 클릭하여 브라우저에서 앱을 엽니다.

초기화 단계 살펴보기

현재 디렉터리 워크플로 azd init 에서 코드 사용을 선택하면 이 명령은 프로젝트를 분석하고 검색된 내용에 따라 코드를 자동으로 생성합니다. 아래 섹션에서는 이 프로세스의 작동 방식과 현재 지원되는 기술에 대한 세부 정보를 설명합니다.

감지

azd init 명령은 프로젝트 디렉터리 및 하위 디렉터리에 있는 지원되는 언어에 대한 프로젝트 파일을 검색합니다. azd 또한 패키지 종속성을 검색하여 앱에서 사용하는 웹 프레임워크 또는 데이터베이스에 대한 정보를 수집합니다. 필요한 경우 확인 요약 프롬프트에 표시된 대로 검색된 구성 요소를 수동으로 추가하거나 편집할 수 있습니다.

현재 검색 논리는 다음과 같습니다.

  • 지원되는 언어:
    • Python
    • JavaScript/TypeScript
    • .NET
    • Java
  • 지원되는 데이터베이스:
    • MongoDB
    • PostgreSQL
  • Python 및 JavaScript/TypeScript의 경우 웹 프레임워크 및 데이터베이스가 자동으로 검색됩니다.
  • JavaScript/TypeScript 프로젝트에서 프런트 엔드(또는 클라이언트 쪽) 웹 프레임워크를 사용하는 경우 프런트 엔드 서비스로 분류됩니다. 서비스에서 현재 검색되지 않은 프런트 엔드 웹 프레임워크를 사용하는 경우 JQuery를 선택하여 동등한 프런트 엔드 서비스 분류 및 동작을 제공할 수 있습니다.

Generation

검색된 구성 요소를 azd init 확인한 후 Azure에 애플리케이션을 배포하는 데 필요한 코드로서의 인프라 파일을 생성합니다.

생성 논리는 다음과 같습니다.

  • 지원되는 호스트:
    • Azure Container Apps
  • 데이터베이스의 경우 데이터베이스 기술과 서비스 간에 지원되는 매핑이 사용됩니다.
    • MongoDB: Azure CosmosDB API for MongoDB
    • PostgreSQL: Azure Database for PostgreSQL 유연한 서버
    • Redis: Azure Container Apps Redis 추가 기능
  • 데이터베이스를 사용하는 서비스에는 기본적으로 미리 구성된 데이터베이스에 대한 연결을 제공하는 환경 변수가 있습니다.
  • 프런트 엔드 및 백 엔드 서비스가 모두 검색되면 백 엔드 서비스에 대한 Azure 호스트의 CORS 구성이 업데이트되어 프런트 엔드 서비스의 기본 호스팅을 허용합니다기본. 코드 구성 파일로 인프라에서 필요에 따라 수정하거나 제거할 수 있습니다.

개발 컨테이너에 대한 지원 추가

템플릿을 개발 컨테이너 및 Codespaces와 호환되도록 만들 수도 있습니다. 개발 컨테이너를 사용하면 컨테이너를 완전한 기능을 갖춘 개발 환경으로 사용할 수 있습니다. 애플리케이션을 실행하고, 코드베이스 작업에 필요한 도구, 라이브러리 또는 런타임을 분리하고, 지속적인 통합 및 테스트를 지원하는 데 사용할 수 있습니다. 개발 컨테이너는 프라이빗 또는 퍼블릭 클라우드에서 로컬 또는 원격으로 실행할 수 있습니다. (원본: https://containers.dev/)

개발 컨테이너에 대한 지원을 추가하려면 다음을 수행합니다.

  1. 프로젝트의 루트에 .devcontainer 폴더를 만듭니다.

  2. 원하는 구성을 .devcontainer 사용하여 devcontainer.json 폴더 내부에 파일을 만듭니다. 시작 템플릿은 azd 프로젝트에 복사하고 필요에 따라 수정할 수 있는 샘플 devcontainer.json 파일을 제공합니다.

Visual Studio Code 설명서에서 개발 컨테이너 작업에 대해 자세히 알아보세요.

CI/CD 파이프라인에 대한 지원 추가

다음 단계를 사용하여 GitHub 작업 또는 Azure DevOps를 사용하여 템플릿에서 CI/CD에 대한 지원을 추가할 수도 있습니다.

  1. .github GitHub 작업에 대한 폴더 또는 .ado Azure DevOps용 폴더를 프로젝트의 루트에 추가합니다.

  2. 새 폴더에 워크플로 파일을 추가합니다. 시작 템플릿은 azd 프로젝트에 복사하고 필요에 따라 수정할 수 있는 각 플랫폼에 대해 샘플 GitHub Actions 워크플로 파일 및 샘플 Azure DevOps Pipelines 파일을 제공합니다.

  3. 워크플로를 main.parameters.json 실행하는 데 필요한 환경 변수를 사용하여 폴더의 파일을 infra 업데이트해야 할 수도 있습니다.

CI/CD 파이프라인 구성

템플릿에 GitHub Actions 또는 Azure Pipelines에 대한 지원이 포함된 경우 다음 단계를 사용하여 CI/CD 파이프라인을 구성할 수 있습니다.

  1. 다음 명령을 실행하여 리포지토리에 업데이트를 푸시합니다. 업데이트로 인해 GitHub Actions 워크플로가 트리거됩니다.

    azd pipeline config    
    
  2. 브라우저를 사용하여 프로젝트의 GitHub 리포지토리로 이동합니다.

  3. 작업을 선택하여 실행 중인 워크플로를 확인합니다 .

리소스 정리

이 문서에서 만든 리소스가 더 이상 필요하지 않은 경우 다음 명령을 실행합니다.

azd down

참고 항목

도움말 요청

버그를 제출하거나, 도움말을 요청하거나, Azure 개발자 CLI에 대한 새 기능을 제안하는 방법에 대한 자세한 내용은 문제 해결 및 지원 페이지를 참조하세요.

다음 단계