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


Схема 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.yaml из шаблонаToDo 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 с префиксом pre или post в зависимости от того, когда скрипт должен выполняться. При указании путей они должны быть относительными к пути проекта. Дополнительные сведения см. в статье Настройка рабочих процессов azure Developer CLI с помощью команд и событий.
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-env-name и azd-service-name тегам. Если он не найден, он будет искать имя ресурса, созданное из текущего имени среды, сцеплено с именем службы (<environment-name><resource-name>). prodapi
project Y (строка) пути к каталогу исходного кода службы.
host Y (строка) тип ресурса Azure, используемого для реализации службы. Если опущено, служба приложений будет предполагаться. appservice, containerapp, function, staticwebapp, aks (только для проектов, развертываемых с помощью kubectl apply -f), springapp (если включен - узнайте больше о альфа-функциях)
language Y (строка) языке реализации службы. dotnet, csharp, fsharp, py, python, js, ts, java
module Y (строка) пути модуля инфраструктуры, используемого для развертывания службы относительно корневой папки инфраструктуры. Если опущено, интерфейс командной строки предполагает, что имя модуля совпадает с именем службы.
dist Y (строка) относительный путь к артефактам развертывания службы. Интерфейс командной строки будет использовать файлы в этом пути для создания артефакта развертывания (.zip файла). Если опущено, все файлы в каталоге проекта службы будут включены. build
docker N Применимо только в том случае, если hostcontainerapp. Не удается содержать дополнительные свойства. Ознакомьтесь с примером docker ниже. path (строка): путь к Dockerfile. По умолчанию: ./Dockerfile; context(строка): контекст сборки Docker. При указании переопределяет контекст по умолчанию. По умолчанию: .;platform(строка) — целевой объект платформы. По умолчанию: amd64; remoteBuild(логическое): включает удаленные сборки ACR. По умолчанию: false
k8s N Параметры конфигурации службы Azure Kubernetes (AKS). См. пример AKS ниже. deploymentPath (строка): необязательно. Относительный путь от пути службы к манифестам развертывания k8s. При установке он переопределит расположение пути развертывания по умолчанию для манифестов развертывания k8s. По умолчанию: manifests; namespace(строка): необязательно. Пространство имен k8s развернутых ресурсов. При указании создается новое пространство имен k8s, если оно еще не существует. По умолчанию: Project name; deployment(объект): см. свойства развертывания; service(объект): см. свойств службы; ingress(объект): см. свойства входящего трафика.
hooks N Перехватчики уровня обслуживания. Перехватчики должны совпадать с именами событий service, префиксами pre или post в зависимости от того, когда скрипт должен выполняться. При указании путей они должны быть относительными к пути службы. Дополнительные сведения см. в статье Настройка рабочих процессов azure Developer CLI с помощью команд и событий.
apiVersion N Укажите явный api-version при развертывании служб, размещенных в приложениях контейнеров Azure (ACA). Эта функция помогает избежать использования несовместимой версии API и упрощает развертывание, чтобы избежать потери пользовательских данных конфигурации во время маршалинга JSON в жестко закодированную версию библиотеки пакета SDK Azure. apiVersion: 2024-02-02-preview

Пример параметров 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
    docker:
      remoteBuild: true

Свойства deployment AKS

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

Свойства service AKS

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

Свойства ingress AKS

Имя элемента Обязательно Описание Пример
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

свойства workflows

Имя элемента Тип Обязательно Описание
вверх объект Нет При указании будет переопределяться поведение по умолчанию для рабочего процесса azd up.

свойства up

Имя элемента Тип Обязательно Описание
стремянка массив Да Действия, выполняемые в рабочем процессе.

свойства steps

Имя элемента Тип Обязательно Описание
azd струна Да Имя и args команды azd для выполнения.

Пример рабочего процесса

Следующий azure.yaml файл изменяет поведение azd up по умолчанию для перемещения шага azd package после azd provision шага с помощью рабочего процесса. Этот пример можно использовать в сценариях, где необходимо знать URL-адреса ресурсов во время сборки или упаковки.

name: todo-nodejs-mongo
metadata:
  template: todo-nodejs-mongo@0.0.1-beta
workflows:
  up: 
    steps:
      - azd: provision
      - azd: deploy --all

Запрос справки

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

Дальнейшие действия