azd 템플릿은 개념 증명 애플리케이션 코드, 편집기/IDE 구성 및 Bicep 또는 Terraform으로 작성된 인프라 코드를 포함하는 청사진 리포지토리입니다. 이러한 템플릿은 특정 애플리케이션 요구 사항에 맞게 수정 및 조정된 다음 Azure 개발자 CLI(azd)를 사용하여 Azure에서 애플리케이션을 가져오는 데 사용됩니다. azure.yaml 스키마는 이러한 템플릿에 포함된 Azure 리소스의 앱 및 유형을 정의하고 설명합니다.
샘플
다음은 템플릿에 필요한 azd 일반적인 예 azure.yaml 입니다.
name: yourApp
metadata:
template: yourApp@0.0.1-beta
services:
web:
project: ./src/web # path to your web project
dist: build # relative path to service deployment artifacts
language: js # one of the supported languages
host: appservice # one of the supported Azure services
(object) Azure 인프라 프로비저닝을 위한 추가 구성을 제공합니다. 자세한 내용은 인프라 속성을 참조하세요.
services
Y
(object) 애플리케이션을 구성하는 서비스의 정의입니다. 자세한 내용은 서비스 속성을 참조하세요.
pipeline
N
(object) 연속 통합 파이프라인의 정의입니다. 자세한 내용은 파이프라인 속성을 참조하세요.
hooks
N
명령 수준 후크입니다. 후크는 스크립트를 실행해야 하는 경우에 따라 접두사 또는 prepost 접두사로 지정된 명령 이름과 일치 azd 해야 합니다. 경로를 지정할 때는 프로젝트 경로를 기준으로 해야 합니다. 자세한 내용은 명령 및 이벤트 후크를 사용하여 Azure 개발자 CLI 워크플로 사용자 지정을 참조하세요.
requiredVersions
N
이 프로젝트에 대해 지원되는 버전 범위입니다 azd . 버전 azd 이 이 범위를 벗어나면 프로젝트가 로드되지 않습니다. 선택 사항(없는 경우 모든 버전을 허용). 예: >= 0.6.0-beta.3
metadata 속성
요소 이름
Required
설명
예시
template
N
(string) 애플리케이션을 만든 템플릿의 식별자입니다.
todo-nodejs-mongo@0.0.1-beta
infra 속성
요소 이름
Required
설명
예시
provider
N
(string) 애플리케이션의 Azure 리소스에 대한 인프라 공급자입니다. (기본값: bicep).
(string) 서비스를 구현하는 Azure 리소스의 이름입니다. 지정 azd 하지 않으면 리소스 및 azd-env-nameazd-service-name 태그를 찾습니다. 찾을 수 없는 경우 서비스 이름(<environment-name><resource-name>)과 연결된 현재 환경 이름에서 생성된 리소스 이름을 찾습니다.
prodapi
project
Y
(string) 서비스 소스 코드 디렉터리의 경로입니다.
host
Y
(string) 서비스 구현에 사용되는 Azure 리소스의 유형입니다. 생략하면 App Service가 가정됩니다.
appservice, containerapp, function, staticwebapp, aks (배포 가능한 프로젝트에만 해당kubectl apply -f), springapp (사용하도록 설정된 경우 - 알파 기능에 대해 자세히 알아보기)
language
Y
(string) 서비스 구현 언어입니다.
dotnet, csharp, fsharp, py, python, js, tsjava
module
Y
(string) 루트 인프라 폴더를 기준으로 서비스를 배포하는 데 사용되는 인프라 모듈의 경로입니다. 생략하면 CLI는 모듈 이름이 서비스 이름과 동일하다고 가정합니다.
dist
Y
(string) 서비스 배포 아티팩트 상대 경로입니다. CLI는 이 경로 아래의 파일을 사용하여 배포 아티팩트(.zip 파일)를 만듭니다. 생략하면 서비스 프로젝트 디렉터리의 모든 파일이 포함됩니다.
build
docker
N
에 해당하는 경우에만 host 적용됩니다 containerapp. 추가 속성을 포함할 수 없습니다.
아래의 사용자 지정 Docker 샘플을 참조하세요. path(문자열): Dockerfile에 대한 경로입니다. 기본값: ./Dockerfile; context(문자열): docker 빌드 컨텍스트입니다. 지정하면 기본 컨텍스트를 재정의합니다. 기본값: .; platform(문자열): 플랫폼 대상입니다. 기본값: amd64
k8s
N
AKS(Azure Kubernetes Service) 구성 옵션입니다.
아래 AKS 샘플을 참조하세요. deploymentPath(문자열): 선택 사항입니다. 서비스 경로에서 k8s 배포 매니페스트로의 상대 경로입니다. 설정되면 k8s 배포 매니페스트의 기본 배포 경로 위치를 재정의합니다. 기본값: manifests; namespace(문자열): 선택 사항입니다. 배포된 리소스의 k8s 네임스페이스입니다. 지정하면 아직 없는 경우 새 k8s 네임스페이스가 만들어집니다. 기본값: Project name; deployment(개체): 배포 속성을 참조하세요.service(개체): 서비스 속성을 참조하세요.ingress(개체): 수신 속성을 참조하세요.
hooks
N
서비스 수준 후크. 후크는 스크립트를 실행해야 하는 경우에 따라 접두사로 prepost 지정된 이벤트 이름과 일치 service 해야 합니다. 경로를 지정할 때는 서비스 경로를 기준으로 해야 합니다.
자세한 내용은 명령 및 이벤트 후크를 사용하여 Azure 개발자 CLI 워크플로 사용자 지정을 참조하세요.
(string) 선택적. 배포 중에 사용할 k8s 배포 리소스의 이름입니다. 배포 중에 k8s 배포 롤아웃이 완료되었는지 확인하는 데 사용됩니다. 설정하지 않으면 서비스 이름이 포함된 동일한 네임스페이스에서 배포 리소스를 검색합니다. 기본값: Service name
api
AKS service 속성
요소 이름
Required
설명
예시
name
N
(string) 선택적. 기본 서비스 엔드포인트로 사용할 k8s 서비스 리소스의 이름입니다. 기본 서비스 리소스에 대한 엔드포인트를 결정할 때 사용됩니다. 설정하지 않으면 서비스 이름이 포함된 동일한 네임스페이스에서 배포 리소스를 검색합니다. (기본값: 서비스 이름)
api
AKS ingress 속성
요소 이름
Required
설명
예시
name
N
(string) 선택적. 기본 서비스 엔드포인트로 사용할 k8s 수신 리소스의 이름입니다. 기본 수신 리소스에 대한 엔드포인트를 결정할 때 사용됩니다. 설정하지 않으면 서비스 이름이 포함된 동일한 네임스페이스에서 배포 리소스를 검색합니다. 기본값: Service name
api
relativePath
N
(string) 선택적. 수신 컨트롤러의 루트에서 서비스에 대한 상대 경로입니다. 설정되면 수신 리소스 경로의 루트에 추가됩니다.
서비스 수준 후크가 있는 AKS 샘플
metadata:
template: todo-nodejs-mongo-aks@0.0.1-beta
services:
web:
project: ./src/web
dist: build
language: js
host: aks
hooks:
postdeploy:
shell: sh
run: azd env set REACT_APP_WEB_BASE_URL ${SERVICE_WEB_ENDPOINT_URL}
api:
project: ./src/api
language: js
host: aks
k8s:
ingress:
relativePath: api
hooks:
postdeploy:
shell: sh
run: azd env set REACT_APP_API_BASE_URL ${SERVICE_API_ENDPOINT_URL}