다음을 통해 공유


Azure 개발자 CLI 및 Azure 배포 환경

이 문서에서는 Azure 개발자 CLI()와 ADE(azdAzure Deployment Environments)와 함께 작동하여 애플리케이션 인프라를 프로비전하고 새 인프라에 애플리케이션 코드를 배포하는 프로세스를 간소화하는 방법에 대해 알아봅니다.

azd 는 워크플로의 주요 단계에 매핑되는 개발자 친화적인 명령을 제공하는 오픈 소스 명령줄 도구입니다. azd를 컴퓨터에 로컬로 설치하거나 다른 환경에서 사용할 수 있습니다.

ADE를 사용하면 개발자 센터에 연결된 카탈로그의 환경 정의에서 환경을 만들거나 ADE 확장성 모델을 사용하여 배포를 실행할 수 있습니다. 추가 azd하면 인프라를 프로비전하고 클라우드에 코드를 배포하는 프로세스를 간소화할 수 있습니다.

azd가 ADE에서 어떻게 작동하나요?

azd는 ADE와 함께 작동하여 사용자가 작업하는 위치에서 환경을 만들 수 있도록 지원합니다.

ADE와 azd가 설치되었을 때 클라우드에 업로드하려는 고유한 인프라 및 코드를 사용하는 개별 개발자는 로컬 폴더에서 환경을 만들 수 있습니다. azd를 사용하여 환경을 프로비전하고 해당 코드를 원활하게 배포할 수 있습니다.

대규모로 ADE와 azd를 함께 사용하면 개발자가 앱 인프라 및 코드를 만드는 방법을 제공할 수 있습니다. 팀은 동일한 azd 호환 환경 정의에서 여러 ADE 환경을 만들고 일관된 방식으로 클라우드에 코드를 프로비전할 수 있습니다.

azd 템플릿 이해

Azure Developer CLI 명령은 표준화된 템플릿으로 작업하도록 설계되었습니다. 각 템플릿은 특정 파일 및 폴더 규칙을 준수하는 코드 리포지토리입니다. 템플릿에는 azd가 Azure 배포 환경의 환경을 프로비전하는 데 필요한 자산이 포함되어 있습니다. azd up와 같은 명령을 실행할 때 도구는 템플릿 자산을 사용하여 Azure에 리소스 프로비전 또는 배포와 같은 다양한 워크플로 단계를 실행합니다.

다음 다이어그램은 일반적인 템플릿 구조를 보여줍니다.

├── infra                                        [ Contains infrastructure as code files ]
├── .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 ]
├── src                                          [ Contains all of the deployable app source code ]
└── azure.yaml                                   [ Describes the app and type of Azure resources]

모든 azd 템플릿에는 다음 자산이 포함되어 있습니다.

  • 인프라 폴더 - 인프라 폴더는 ADE를 사용하는 azd에서 사용되지 않습니다. 템플릿에 대한 코드 파일로 모든 Bicep 또는 Terraform 인프라를 azd 포함합니다. ADE는 인프라를 azd 템플릿의 코드 파일로 제공합니다. 이러한 파일을 azd 템플릿에 포함할 필요가 없습니다.

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

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

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

또한 대부분의 azd 템플릿에는 선택적으로 다음 폴더 중 하나 이상이 포함되어 있습니다.

  • .devcontainer 폴더 - 애플리케이션에 대한 개발 컨테이너 환경을 설정할 수 있습니다. 이 일반적인 개발 환경 접근 방식은 관련이 없습니다 azd .

  • .github 폴더 - 기본 CI/CD 공급자인 GitHub Actions에 대한 CI/CD 워크플로 파일을 보유합니다 azd .

  • .azdo 폴더 - CI/CD용 Azure Pipelines를 사용하기로 결정한 경우 이 폴더에 워크플로 구성 파일을 정의합니다.

azd 호환 카탈로그

Azure 배포 환경 카탈로그는 환경 정의, 즉 배포 환경에 프로비전되는 인프라 리소스를 정의하는 IaC 템플릿으로 구성됩니다. Azure Developer CLI는 개발자 센터에 연결된 카탈로그의 환경 정의를 사용하여 새 환경을 프로비전합니다.

Azure 개발자 CLI는 Azure Deployment Environments 개발자 센터 카탈로그에 저장된 ARM 템플릿에서 작동합니다. 또한 ADE 확장성 모델을 통해 Bicep 및 Terraform과 같은 다른 IaC 템플릿도 지원합니다. ADE 확장성 모델을 구성하는 방법을 알아보려면 Azure Deployment Environments 확장성 모델을 참조하세요.

특정 Azure Compute 서비스를 적절하게 지원하려면 Azure 개발자 CLI에는 IaC 템플릿에 더 많은 구성 설정이 필요합니다. 예를 들어, azd가 호스트를 찾고 호스트에 앱을 배포하는 방법을 알 수 있도록 특정 정보로 앱 서비스 호스트에 태그를 지정해야 합니다.

지원되는 Azure 서비스 목록은 지원되는 Azure 컴퓨팅 서비스(호스트)에서 확인할 수 있습니다.

ADE 카탈로그가 azd와 호환되도록 만들기

개발 팀이 ADE와 함께 azd를 사용할 수 있도록 하려면 azd와 호환되는 카탈로그에 환경 정의를 만들어야 합니다. 새 azd 호환 환경 정의를 만들거나 Azure Deployment Environments 개발자 센터 카탈로그에서 기존 환경 정의를 사용할 수 있습니다. 기존 환경 정의를 사용하도록 선택하는 경우 azd와 호환되도록 몇 가지 변경 사항을 작성해야 합니다.

변경 내용은 다음과 같습니다.

  • 기존 azd 템플릿을 수정하는 경우 infra 폴더를 제거합니다. ADE는 다음 파일을 사용하여 인프라를 만듭니다.
    • ARM 템플릿(azuredeploy.json)
    • 매개 변수를 정의하는 구성 파일(environment.yaml 또는 manifest.yaml)
  • azd가 호스트를 찾고 호스트에 앱을 배포하는 방법을 알 수 있도록 특정 정보로 azure.yaml의 리소스에 태그를 지정합니다.

ADE 환경 정의가 azd와 호환되도록 하는 방법에 대한 자세한 내용은 프로젝트가 Azure Developer CLI와 호환되도록 만들기를 참조하세요.

ADE에서 azd 지원 사용

ADE에서 azd 지원을 사용하도록 설정하려면 platform.type를 devcenter로 설정해야 합니다. 이 구성을 azd 사용하면 원격 환경 상태 및 프로비전에 새 개발자 센터 구성 요소를 사용할 수 있으며 템플릿의 인프라 폴더가 무시됩니다. 대신 리소스 azd 프로비저닝을 위해 개발자 센터 카탈로그에 정의된 인프라 템플릿 중 하나를 사용합니다.

azd 지원을 사용하도록 설정하려면 다음 명령을 실행합니다.

 azd config set platform.type devcenter

azd 명령 살펴보기

개발 센터 기능을 사용하도록 설정하면 몇 가지 일반적인 azd 명령의 기본 동작이 이러한 원격 환경에서 작동하도록 변경됩니다. 자세한 내용은 Azure Deployment Environments 작업을 참조하세요.