Share via


환경 정의 추가 및 구성

이 문서에서는 Azure Deployment Environments 카탈로그에서 환경 정의를 추가, 업데이트 또는 삭제하는 방법을 설명합니다. 또한 환경을 배포하기 위해 컨테이너 이미지를 참조하는 방법도 설명합니다.

Azure Deployment Environments에서는 카탈로그를 사용하여 개발 팀에 환경 정의라는 미리 정의된 IaC(Infrastructure as Code) 템플릿 집합을 엄선하여 제공합니다.

환경 정의는 최소한 두 개의 파일로 구성됩니다.

  • IaC 프레임워크의 템플릿입니다. 예:
    • ARM(Azure Resource Manager) 템플릿은 azuredeploy.json이라는 파일을 사용할 수 있습니다.
    • Bicep 템플릿은 main.bicep이라는 파일을 사용할 수 있습니다.
    • Terraform 템플릿은 azuredeploy.tf라는 파일을 사용할 수 있습니다.
  • 템플릿에 대한 메타데이터를 제공하는 구성 파일입니다. 이 파일의 이름은 environment.yaml이어야 합니다.

개발 팀은 카탈로그에 제공하는 환경 정의를 사용하여 Azure에 환경을 배포합니다.

Microsoft는 리포지토리로 사용할 수 있는 샘플 카탈로그를 제공합니다. 자체 프라이빗 리포지토리를 사용하거나 샘플 카탈로그에서 환경 정의를 포크하고 사용자 지정할 수도 있습니다.

개발자 센터에 카탈로그를 추가하면 서비스는 지정된 폴더 경로를 검사하여 템플릿 및 연결된 환경 파일이 포함된 폴더를 식별합니다. 지정된 폴더 경로는 환경 정의 파일을 보관하는 하위 폴더가 포함된 폴더여야 합니다.

환경 정의 추가

ADE(Azure Deployment Environments)의 카탈로그에 환경 정의를 추가하려면 먼저 리포지토리에 파일을 추가합니다. 그런 다음 개발자 센터 카탈로그를 업데이트된 리포지토리와 동기화합니다.

환경 정의를 추가하려면 다음 안내를 따릅니다.

  1. GitHub 또는 Azure DevOps 리포지토리에서 리포지토리 폴더 경로에 하위 폴더를 만듭니다.

  2. 새 리포지토리 하위 폴더에 두 개의 파일을 추가합니다.

    • IaC 템플릿 파일입니다.

    • YAML 파일로서의 환경.

      environment.yaml 파일에는 IaC 템플릿과 관련된 메타데이터가 포함되어 있습니다.

      다음 스크립트는 ARM 템플릿에 대한 environment.yaml 파일 콘텐츠의 예입니다.

          name: WebApp
          version: 1.0.0
          summary: Azure Web App Environment
          description: Deploys a web app in Azure without a datastore
          runner: ARM
          templatePath: azuredeploy.json
      

      다음 표를 사용하여 environment.yaml 파일의 필드를 이해합니다.

      필드 설명
      name 환경 정의의 이름입니다.
      version 환경 정의의 버전입니다. 이 필드는 선택적입니다.
      요약 환경 정의에 대한 간략한 설명입니다.
      description 환경 정의에 대한 자세한 설명입니다.
      실행기 템플릿이 사용하는 IaC 프레임워크입니다. 값은 ARM, Bicep입니다. 컨테이너 레지스트리에 저장된 템플릿에 대한 경로를 지정할 수도 있습니다.
      templatePath IaC 템플릿 파일의 경로입니다.

      environment.yaml에서 사용할 수 있는 옵션과 데이터 형식에 대해 자세히 알아보려면 environment.yaml의 매개 변수 및 데이터 형식을 참조하세요.

  3. 개발자 센터에서 카탈로그로 이동하여 리포지토리를 선택한 다음, 동기화를 선택합니다.

    카탈로그를 동기화하는 방법을 보여 주는 스크린샷.

서비스는 리포지토리를 검사하여 새 환경 정의를 찾습니다. 리포지토리를 동기화한 후에는 개발자 센터의 모든 프로젝트에서 새 환경 정의를 사용할 수 있습니다.

컨테이너 이미지를 사용하여 환경 배포

ADE는 컨테이너 이미지를 사용하여 배포 환경용 템플릿이 배포되는 방식을 정의합니다. ADE는 기본적으로 ARM 및 Bicep을 지원하므로 카탈로그에 템플릿 파일(azuredeploy.json 및 Environment.yaml)을 추가하여 배포 환경에 Azure 리소스를 배포하는 환경 정의를 구성할 수 있습니다. 그런 다음 ADE는 표준 ARM 또는 Bicep 컨테이너 이미지를 사용하여 배포 환경을 만듭니다.

고급 환경 배포를 위해 사용자 지정 컨테이너 이미지를 만들 수 있습니다. 예를 들어, 배포 전이나 후에 스크립트를 실행할 수 있습니다. ADE는 Pulumi 및 Terraform과 같은 IaC 프레임워크를 배포하는 데 도움이 될 수 있는 환경 배포를 위한 사용자 지정 컨테이너 이미지를 지원합니다.

ADE 팀은 시작하는 데 도움이 되도록 Microsoft 아티팩트 레지스트리(Microsoft Container Registry라고도 함)를 통해 액세스할 수 있는 샘플 ARM 및 Bicep 컨테이너 이미지를 제공합니다.

사용자 지정 컨테이너 이미지 빌드에 대한 자세한 내용은 다음을 참조하세요.

ARM 또는 Bicep 샘플 컨테이너 이미지 지정

Environment.yaml 파일에서 실행기 속성은 사용하려는 이미지의 위치를 지정합니다. Microsoft 아티팩트 레지스트리에 게시된 샘플 이미지를 사용하려면 다음 표에 나열된 해당 식별자 실행기를 사용합니다.

IaC 프레임워크 실행기 값
ARM ARM
Bicep Bicep
Terraform 샘플 이미지가 없습니다. 대신 사용자 지정 컨테이너 이미지를 사용합니다.

다음 예에서는 샘플 Bicep 컨테이너 이미지를 참조하는 실행기를 보여 줍니다.

    name: WebApp
    version: 1.0.0
    summary: Azure Web App Environment
    description: Deploys a web app in Azure without a datastore
    runner: Bicep
    templatePath: azuredeploy.json

사용자 지정 컨테이너 이미지 지정

리포지토리에 저장된 사용자 지정 컨테이너 이미지를 사용하려면 Environment.yaml 파일에서 다음 실행기 형식을 사용합니다.

runner: "{YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}”`

다음 예와 같이 리포지토리와 사용자 지정 이미지를 참조하도록 실행기 값을 편집합니다.

    name: WebApp
    version: 1.0.0
    summary: Azure Web App Environment
    description: Deploys a web app in Azure without a datastore
    runner: "{YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}"
    templatePath: azuredeploy.json
속성 설명
YOUR_REGISTRY 사용자 지정 이미지를 저장하는 레지스트리입니다.
YOUR_REPOSITORY 해당 레지스트리의 리포지토리입니다.
YOUR_TAG 버전 번호와 같은 태그입니다.

환경 정의에 대한 매개 변수 지정

개발자가 환경을 사용자 지정할 수 있도록 환경 정의에 대한 매개 변수를 지정할 수 있습니다.

매개 변수는 environment.yaml 파일에 정의됩니다.

다음 스크립트는 두 개의 매개 변수, locationname을 포함하는 ARM 템플릿용 environment.yaml 파일의 예입니다.

name: WebApp
summary: Azure Web App Environment
description: Deploys a web app in Azure without a datastore
runner: ARM
templatePath: azuredeploy.json
parameters:
- id: "location"
  name: "location"
  description: "Location to deploy the environment resources"
  default: "[resourceGroup().location]"
  type: "string"
  required: false
- id: "name"
  name: "name"
  description: "Name of the Web App "
  default: ""
  type: "string"
  required: false

environment.yaml에서 사용할 수 있는 매개 변수 및 해당 데이터 형식에 대해 자세히 알아보려면 environment.yaml의 매개 변수 및 데이터 형식을 참조하세요.

개발자는 개발자 포털을 통해 특정 환경 매개 변수 값을 제공할 수 있습니다.

매개 변수 창을 보여 주는 개발자 포털의 개발자 포털 스크린샷.

개발자는 CLI를 통해 특정 환경 매개 변수 값을 제공할 수도 있습니다.

az devcenter dev environment create --environment-definition-name
                                    --catalog-name
                                    --dev-center
                                    --environment-name
                                    --environment-type
                                    --project
                                    [--description]
                                    [--no-wait]
                                    [--parameters]
                                    [--tags]
                                    [--user]
                                    [--user-id]

az devcenter dev environment create 명령에 대해 자세히 알아보려면 Azure CLI devcenter 확장을 참조하세요.

환경 정의 업데이트

Azure Deployment Environments의 기존 환경 정의에서 Azure 리소스 구성을 수정하려면 리포지토리에서 연결된 템플릿 파일을 업데이트합니다. 특정 환경 정의를 사용하여 새 환경을 만들면 변경 내용이 즉시 반영됩니다. 해당 환경 정의와 연결된 환경을 다시 배포하는 경우에도 업데이트가 적용됩니다.

템플릿과 관련된 메타데이터를 업데이트하려면 environment.yaml을 수정한 다음 카탈로그를 업데이트합니다.

환경 정의 삭제

기존 환경 정의를 삭제하려면 리포지토리에서 템플릿 파일 및 연결된 환경 YAML 파일이 포함된 하위 폴더를 삭제합니다. 그런 다음, 카탈로그를 업데이트합니다.

환경 정의를 삭제한 후에는 개발 팀이 더 이상 특정 환경 정의를 사용하여 새 환경을 배포할 수 없습니다. 삭제된 환경 정의를 사용하는 기존 환경에 대한 환경 정의 참조를 업데이트합니다. 참조가 업데이트되지 않고 환경이 재배포되면 배포가 실패합니다.