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 |
| Имя элемента |
Обязательно |
Описание |
Пример |
template |
N |
(строка) идентификатор шаблона, из которого было создано приложение. |
todo-nodejs-mongo@0.0.1-beta |
свойства infra
| Имя элемента |
Обязательно |
Описание |
Пример |
provider |
N |
(строка) поставщик инфраструктуры для ресурсов Azure приложения. (По умолчанию: bicep). |
См. пример Terraform.
bicep, terraform |
path |
N |
(строка) относительный путь к папке, содержащей шаблоны подготовки Azure для указанного поставщика. (по умолчанию: инфраструктура). |
|
module |
N |
(строка) имя модуля по умолчанию с шаблонами подготовки Azure. (по умолчанию: main). |
|
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, используемого для реализации службы. Если опущено, служба приложений предполагается. Узел containerapp поддерживает как приложения контейнеров Azure, так и задания приложений контейнеров Azure. Шаблон Bicep определяет, какой тип ресурса подготовлен. |
appservice, containerapp, function, staticwebapp, aks (только для проектов, развертываемых с помощью kubectl apply -f), springapp (если включен - узнайте больше о альфа-функциях) |
language |
Y |
(строка) языке реализации службы. |
dotnet, csharp, fsharppypythonjstsjava |
module |
Y |
(строка) пути модуля инфраструктуры, используемого для развертывания службы относительно корневой папки инфраструктуры. Если опущено, интерфейс командной строки предполагает, что имя модуля совпадает с именем службы. |
|
dist |
Y |
(строка) относительный путь к артефактам развертывания службы. Интерфейс командной строки использует файлы в этом пути для создания артефакта развертывания (.zip файла). Если опущено, все файлы в каталоге проекта службы включаются. |
build |
docker |
N |
Применимо только в том случае, если host ( containerapp включая задания приложения-контейнеры). Не удается содержать дополнительные свойства. |
См. пользовательский пример 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(объект): см. свойства входящего трафика. |
config |
N |
(объект) Дополнительные параметры конфигурации для службы. Для служб JavaScript или TypeScript (js или ts) поддерживает packageManager(строку) для явного задания диспетчера пакетов. Допустимые значения: npm, pnpm, yarn. Если опущено, azd автоматически обнаруживает диспетчер пакетов из packageManager поля в package.jsonфайлах блокировки или по npmумолчанию. |
config: { packageManager: pnpm } |
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: package
- azd: deploy --all
Запрос справки
Сведения о том, как отправить ошибку, запросить справку или предложить новую функцию для Интерфейса командной строки разработчика Azure, перейдите на страницу устранения неполадок и поддержки.
Дальнейшие действия