다음을 통해 공유


기존 템플릿을 사용하여 앱에 Azure 개발자 CLI 지원 추가

Azure 개발자 CLI(azd)는 다음과 같은 두 가지 워크플로를 제공하여 앱에 사용할 템플릿을 초기화합니다.

  • 현재 디렉터리의 코드 사용: 이 방법은 앱을 분석하고 지원되는 인프라 및 구성 리소스를 자동으로 생성합니다.
  • 템플릿 선택: 이 방법을 사용하면 기존 템플릿을 앱과 통합하거나 기존 템플릿을 새 앱의 시작점으로 사용할 수 있습니다.

이러한 두 가지 방법은 모두 Azure 개발자 CLI 템플릿 만들기 개요 문서에서 설명합니다.

이 문서에서는 템플릿 선택 방법을 통해 앱에 Azure 개발자 CLI(azd)에 대한 지원을 추가하는 방법을 알아봅니다. 대체 방법에 대한 자세한 내용은 기존 템플릿 문서를 사용하여 앱에 추가 azd 지원을 방문하세요. 템플릿 빌드에 대한 자세한 내용은 학습 - 템플릿 빌드 및 배포 azdazd 참조할 수도 있습니다.

앱에 사용할 템플릿 선택

명령의 azd init 템플릿 선택 워크플로를 사용하면 시작점으로 사용할 기존 azd 템플릿을 선택할 수 있습니다. 선택한 템플릿의 내용이 프로젝트의 루트 디렉터리에 추가됩니다. 대부분의 템플릿은 필요한 파일 및 폴더 집합 azd 을 제공하며, 많은 템플릿에는 선택한 애플리케이션 스택에 대한 Azure 리소스를 프로비전하는 전체 코드로 설정된 인프라 파일이 포함됩니다.

이 예제에서는 템플릿의 필수 구조 azd 와 시작하는 데 유용한 상용구 코드를 포함하는 Starter - Bicep 템플릿을 사용합니다. 시작 템플릿은 올바른 템플릿 구조와 시작 리소스를 스캐폴드하지만 자체 인프라 파일을 작성하려는 경우에 적합합니다.

  1. 기존 샘플 애플리케이션을 사용하여 단계와 함께 수행하려면 다음 시작 프로젝트를 컴퓨터의 빈 디렉터리에 복제합니다.

    git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
    
  2. 선택한 명령줄 도구에서 복제된 프로젝트의 루트 디렉터리로 이동합니다.

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

    azd init
    
  4. 메시지가 표시되면 템플릿 선택 옵션을 선택합니다.

    템플릿 선택 옵션을 보여 주는 스크린샷

  5. 템플릿 목록에서 Starter - Bicep을 선택합니다. 템플릿 이름을 입력하거나 키보드 화살표 키를 사용하여 찾을 수 있습니다.

  6. 메시지가 표시되면 testenv와 같은 짧은 환경 이름을 입력합니다.

  7. 실행 azd init한 후 다음 자산이 현재 디렉터리에 추가됩니다.

    ├── .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]
    

Bicep 파일 업데이트

이제 프로젝트에 템플릿의 핵심 구조와 자산이 azd 포함됩니다. 그러나 특정 프로젝트에 대한 Azure 리소스를 프로비전하려면 폴더의 Bicep 파일을 infra 업데이트해야 합니다. 샘플 애플리케이션을 호스트하려면 Bicep 파일을 사용하여 다음 리소스를 정의해야 합니다.

  • Azure 앱 서비스 계획
  • Linux에서 실행되는 Azure 앱 서비스
  1. Visual Studio Code와 같이 선택한 편집기에서 루트 프로젝트 디렉터리를 엽니다.

  2. 편집기를 main.bicep 사용하여 폴더에서 infra 파일을 엽니다. 이 파일에는 필수 변수, 매개 변수 및 명명 규칙을 설정하는 유용한 상용구 코드가 포함되어 있습니다. 읽는 줄 50 주위의 주석 블록 아래에 다음 Bicep을 추가합니다 Add resources to be provisioned below.

    // Creates an app service instance to host the app
    module web './core/host/appservice.bicep' = {
      name: 'web'
      scope: rg
      params: {
        name: '${abbrs.webSitesAppService}web-${resourceToken}'
        location: location
        tags: union(tags, { 'azd-service-name': 'web' })
        appServicePlanId: appServicePlan.outputs.id
        runtimeName: 'python'
        runtimeVersion: '3.8'
        scmDoBuildDuringDeployment: true
      }
    }
    
    // Create an App Service Plan to group applications under the same payment plan and SKU
    module appServicePlan './core/host/appserviceplan.bicep' = {
      name: 'appserviceplan'
      scope: rg
      params: {
        name: '${abbrs.webServerFarms}${resourceToken}'
        location: location
        tags: tags
        sku: {
          name: 'B1'
        }
      }
    }
    

    참고 항목

    • 고유 문자열은 구독 ID에 따라 생성되고 변수로 ${resourceToken} 사용됩니다. 이 토큰은 .에서 만든 모든 Azure 리소스의 이름에 azd추가됩니다.
    • azd 는 태그를 사용하여 리소스를 식별하므로 조직의 명명 규칙에 따라 이름을 수정할 수 있습니다.
    • 'azd-service-name': 'web' 앱 서비스의 태그는 배포 호스트를 식별하는 데 사용하는 값 azd 입니다. 값은 azure.yaml 파일의 서비스에 대해 정의된 값과 동일해야 합니다.

azure.yaml 파일 업데이트

앱을 배포하려면 앱 azd 에 대해 자세히 알고 있어야 합니다. 이 azure.yaml 파일은 앱의 각 서비스에 대한 소스 코드 위치, 언어 및 Azure 호스팅 서비스를 정의하는 데 사용됩니다. 자세한 내용은 azure.yaml 스키마를 참조하세요.

  1. azure.yaml 프로젝트의 루트에서 엽니다.

  2. 파일 아래쪽에 다음 줄을 추가합니다.

    name: msdocs-python-flask-webapp-quickstart
    services:
      web:
        project: .
        language: py
        host: appservice
    

템플릿 프로비전 및 배포

  1. 모든 변경 내용을 저장하고 다음 명령을 실행하여 Azure에서 앱 리소스를 프로비전하고 배포합니다.

    azd up
    
  2. 명령이 완료되면 명령 출력의 링크를 클릭하여 배포된 사이트로 이동합니다.

이제 프로젝트가 Azure Developer CLI와 호환되며 템플릿으로 사용할 수 있습니다.

참고 항목

azd또한 기본적으로 앱을 컨테이너화하기 위해 Buildpack 사용을 지원합니다. azd 템플릿이 Azure Container Apps 또는 Azure Kubernetes Service를 대상으로 하지만 Docker 파일을 azd 포함하지 않는 경우 Buildpack을 사용하여 이미지를 자동으로 생성합니다.