environment.yaml의 속성 및 매개 변수

ADE(Azure 배포 환경)의 환경 정의는 IaC(Infrastructure as code) 템플릿입니다. 이러한 템플릿은 ADE 확장성 모델을 통해 지원되는 Azure Resource Manager, Bicep, Terraform 또는 기타 프레임워크로 작성되고 리포지토리에 저장됩니다. 요구 사항에 맞게 환경 정의를 수정 및 조정한 다음, 이를 사용하여 Azure에서 배포 환경을 만들 수 있습니다. environment.yaml 스키마는 환경 정의에 포함된 Azure 리소스 유형을 정의하고 설명합니다.

environment.yaml이란 무엇인가요?

environment.yaml 파일은 사용된 리소스와 환경 정의의 템플릿 위치를 설명하는 매니페스트 역할을 합니다.

샘플 environment.yaml

다음 스크립트는 환경 정의에 필요한 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

Definitions

다음 표에서는 environment.yaml에서 사용할 수 있는 속성에 대해 설명합니다.

재산 유형 Description 필수? 예시
name 문자열 카탈로그 항목의 표시 이름입니다. Yes Webapp
version 문자열 카탈로그 항목의 버전입니다. No 1.0.0
summary 문자열 카탈로그 항목을 요약하는 짧은 문자열입니다. No Azure Web App Environment
description 문자열 카탈로그 항목에 대한 설명입니다. No 데이터 저장소 없이 Azure에서 웹앱 배포
runner 문자열 작업을 실행할 때 사용할 컨테이너 이미지입니다. No ARM 템플릿
Terraform
templatePath 문자열 항목 템플릿 파일의 상대 경로입니다. Yes main.tf
main.bicep
azuredeploy.json
parameters 배열 환경을 만들고 작업을 실행할 때 사용할 입력 매개 변수입니다. No #/definitions/매개변수(Parameter)

environment.yaml의 매개 변수

매개 변수를 사용하면 다양한 시나리오에서 환경 정의를 다시 사용할 수 있습니다. 예를 들어 다른 지역의 개발자가 동일한 환경을 배포하도록 할 수 있습니다. 위치 매개 변수를 정의하여 개발자가 환경을 만들 때 원하는 위치를 입력하라는 메시지를 표시할 수 있습니다.

매개 변수가 있는 샘플 environment.yaml

다음 스크립트는 두 개의 매개 변수 location 를 포함하는 environment.yaml 파일의 예입니다 name.

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 매니페스트 파일에 사용되는 데이터 형식 이름은 ARM 템플릿에 사용되는 이름과 다릅니다.

각 매개 변수는 다음 속성 중에서 사용할 수 있습니다.

매개 변수 유형 Description 추가 설정
id 문자열 매개 변수의 고유 ID입니다.
name 문자열 매개 변수의 표시 이름입니다.
description 문자열 매개 변수에 대한 설명입니다.
default 배열
부울
정수
숫자
객체
문자열
매개 변수의 기본값입니다.
type 배열
부울
정수
숫자
객체
문자열
매개 변수의 데이터 형식입니다. 이 데이터 형식은 ARM 템플릿, Bicep 파일 또는 Terraform 파일에 해당 매개 변수 이름이 있는 매개 변수 데이터 형식과 일치해야 합니다. 기본 형식: 문자열
readOnly boolean 매개 변수가 읽기 전용인지 여부를 나타냅니다.
required boolean 매개 변수가 필요한지 여부를 나타냅니다.
allowed 배열 허용되는 값의 배열입니다. "items": {
"type": "string"
},
"minItems": 1,
"uniqueItems": true,

YAML 스키마

Azure Deployment Environments environment.yaml 파일에 대해 정의된 스키마가 있습니다. 이러한 파일을 좀 더 쉽게 편집할 수 있습니다. environment.yaml 파일의 시작 부분에 스키마 정의를 추가할 수 있습니다.

# yaml-language-server: $schema=https://github.com/Azure/deployment-environments/releases/download/2022-11-11-preview/manifest.schema.json

스키마를 사용하는 환경 정의 예제는 다음과 같습니다.

# yaml-language-server: $schema=https://github.com/Azure/deployment-environments/releases/download/2022-11-11-preview/manifest.schema.json
name: FunctionApp
version: 1.0.0
summary: Azure Function App Environment
description: Deploys an Azure Function App, Storage Account, and Application Insights
runner: ARM
templatePath: azuredeploy.json

parameters:
  - id: name
    name: Name
    description: 'Name of the Function App.'
    type: string
    required: true

  - id: supportsHttpsTrafficOnly
    name: 'Supports HTTPS Traffic Only'
    description: 'Allows https traffic only to Storage Account and Functions App if set to true.'
    type: boolean

  - id: runtime
    name: Runtime
    description: 'The language worker runtime to load in the function app.'
    type: string
    allowed:
      - 'dotnet'
      - 'dotnet-isolated'
      - 'java'
      - 'node'
      - 'powershell'
      - 'python'
    default: 'dotnet-isolated'