Поделиться через


Схема Azure Developer CLI azure.yaml

azd шаблоны — это репозитории схем, включающие код приложения проверки концепции, конфигурации редактора или интегрированной среды разработки, а также код инфраструктуры, написанный в Bicep или Terraform. Эти шаблоны предназначены для изменения и адаптации для конкретных требований приложения, а затем используются для получения приложения в Azure с помощью Интерфейса командной строки разработчика Azure (azd). Схема azure.yaml определяет и описывает приложения и типы ресурсов Azure, включенных в эти шаблоны.

Пример

Ниже приведен универсальный пример, необходимый azure.yaml для шаблона azd .

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

Сравните с нашим шаблоном azure.yamlToDo NodeJs Mongo:

name: todo-nodejs-mongo
metadata:
  template: todo-nodejs-mongo@0.0.1-beta
services:
  web:
    project: ./src/web
    dist: build
    language: js
    host: appservice
  api:
    project: ./src/api
    language: js
    host: appservice

Описания свойств

Имя элемента Обязательное поле Описание
name Y (строка) Имя приложения.
resourceGroup N (строка) Имя группы ресурсов Azure. При указании переопределит имя группы ресурсов, используемое для подготовки инфраструктуры.
metadata N (объект) Дополнительные сведения см . в свойствах метаданных.
infra N (объект) Предоставляет дополнительную конфигурацию для подготовки инфраструктуры Azure. Дополнительные сведения см . в свойствах инфраструктуры.
services Y (объект) Определение служб, составляющих приложение. Дополнительные сведения см . в свойствах служб.
pipeline N (объект) Определение конвейера непрерывной интеграции. Дополнительные сведения см . в свойствах конвейера.
hooks N Перехватчики уровня команд. Перехватчики должны соответствовать azd именам команд, префиксированных или prepost в зависимости от того, когда скрипт должен выполняться. При указании путей они должны быть относительными к пути проекта. Дополнительные сведения см. в статье "Настройка рабочих процессов командной строки разработчика Azure" с помощью команд и перехватчиков событий.
requiredVersions N Диапазон поддерживаемых версий azd для этого проекта. Если версия находится за пределами azd этого диапазона, проект не сможет загрузиться. Необязательный параметр (разрешает все версии, если отсутствуют). Пример: >= 0.6.0-beta.3

Свойства metadata

Имя элемента Обязательное поле Описание Пример
template N (строка) Идентификатор шаблона, из которого было создано приложение. todo-nodejs-mongo@0.0.1-beta

Свойства infra

Имя элемента Обязательное поле Описание Пример
provider N (строка) Поставщик инфраструктуры для ресурсов Azure приложения. (По умолчанию: bicep). См. пример Terraform ниже. bicep, terraform
path N (строка) Относительный путь к папке, содержащей шаблоны подготовки Azure для указанного поставщика. (по умолчанию: инфраструктура).
module N (строка) Имя модуля по умолчанию с шаблонами подготовки Azure. (по умолчанию: main).

Пример поставщика Terraform в качестве поставщика IaC

name: yourApp-terraform
metadata:
  template: yourApp-terraform@0.0.1-beta
services:
  web:
    project: ./src/web
    dist: build
    language: js
    host: appservice
  api:
    project: ./src/api
      language: js
      host: appservice
infra:
  provider: terraform

Свойства services

Имя элемента Обязательное поле Описание Пример
resourceName N (строка) Имя ресурса Azure, реализующего службу. Если это не указано, azd найдите ресурс по и azd-service-name тегамazd-env-name. Если он не найден, он будет искать имя ресурса, созданное из текущего имени среды, сцеплено с именем службы (<environment-name><resource-name>). prodapi
project Y (строка) Путь к каталогу исходного кода службы.
host Y (строка) Тип ресурса Azure, используемого для реализации службы. Если опущено, Служба приложений предполагается. appservice, containerapp, functionstaticwebapp, aks , (только для проектов, развертываемых через kubectl apply -f), springapp (если включена — узнайте больше о альфа-функциях)
language Y (строка) Язык реализации службы. dotnet, csharp, fsharppypythonjstsjava
module Y (строка) Путь к модулю инфраструктуры, используемому для развертывания службы относительно корневой папки инфраструктуры. Если опущено, интерфейс командной строки предполагает, что имя модуля совпадает с именем службы.
dist Y (строка) Относительный путь к артефактам развертывания службы. Интерфейс командной строки будет использовать файлы в этом пути для создания артефакта развертывания (ZIP-файл). Если опущено, все файлы в каталоге проекта службы будут включены. build
docker N Применимо только в том containerappслучаеhost. Не удается содержать дополнительные свойства. См. пример пользовательского Docker ниже. path(string): путь к Dockerfile. По умолчанию: ./Dockerfile; context(string): контекст сборки Docker. При указании переопределяет контекст по умолчанию. По умолчанию: .; platform(string): целевой объект платформы. По умолчанию: amd64
k8s N Параметры конфигурации Служба Azure Kubernetes (AKS). См. пример AKS ниже. deploymentPath(string): необязательно. Относительный путь от пути службы к манифестам развертывания k8s. При установке он переопределит расположение пути развертывания по умолчанию для манифестов развертывания k8s. По умолчанию: manifests; namespace(string): необязательно. Пространство имен k8s развернутых ресурсов. При указании создается новое пространство имен k8s, если оно еще не существует. По умолчанию: Project name; deployment(объект): см . свойства развертывания; service(object): см . свойства службы; ingress(object): см . свойства входящего трафика.
hooks N Перехватчики уровня обслуживания. Перехватчики должны совпадать service с именами событий, pre префиксами или post в зависимости от того, когда скрипт должен выполняться. При указании путей они должны быть относительными к пути службы. Дополнительные сведения см. в статье "Настройка рабочих процессов командной строки разработчика Azure" с помощью команд и перехватчиков событий.

Пример параметров Docker

В следующем примере мы объявляем параметры Docker для приложения-контейнера.

name: yourApp-aca
metadata:
    template: yourApp-aca@0.0.1-beta
services:
  api:
    project: ./src/api
    language: js
    host: containerapp
    docker:
      path: ./Dockerfile
      context: ../
  web:
    project: ./src/web
    language: js
    host: containerapp

Свойства AKS deployment

Имя элемента Обязательное поле Описание Пример
name N (строка) Дополнительные. Имя ресурса развертывания k8s, используемого во время развертывания. Используется во время развертывания, чтобы убедиться, что развертывание развертывания k8s завершено. Если не задано, найдите ресурс развертывания в том же пространстве имен, где содержится имя службы. По умолчанию: Service name api

Свойства AKS service

Имя элемента Обязательное поле Описание Пример
name N (строка) Дополнительные. Имя ресурса службы k8s, используемого в качестве конечной точки службы по умолчанию. Используется при определении конечных точек для ресурса службы по умолчанию. Если не задано, найдите ресурс развертывания в том же пространстве имен, где содержится имя службы. (По умолчанию: имя службы) api

Свойства AKS ingress

Имя элемента Обязательное поле Описание Пример
name N (строка) Дополнительные. Имя ресурса входящего трафика k8s, используемого в качестве конечной точки службы по умолчанию. Используется при определении конечных точек для ресурса входящего трафика по умолчанию. Если не задано, найдите ресурс развертывания в том же пространстве имен, где содержится имя службы. По умолчанию: Service name api
relativePath N (строка) Дополнительные. Относительный путь к службе из корня контроллера входящего трафика. Если задано, он будет добавлен в корневой каталог пути к ресурсу входящего трафика.

Пример 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}

Свойства pipeline

Имя элемента Обязательное поле Описание Пример
provider N (строка) Поставщик конвейера, используемый для непрерывной интеграции. (по умолчанию: github). github, azdo

Azure Pipelines (AzDo) в качестве примера конвейера CI/CD

name: yourApp
services:  
  web:    
    project: src/web
    dist: build
    language: js
    host: appservice
pipeline: 
  provider: azdo

Запросить справку

Сведения о том, как отправить ошибку, запросить справку или предложить новую функцию для Интерфейса командной строки разработчика Azure, посетите страницу устранения неполадок и поддержки .

Следующие шаги