Справочник по схеме azure Developer CLI

Файл azure.yaml — это файл конфигурации для проектов Интерфейса командной строки разработчика Azure (azd). Поместите его в корень проекта, чтобы определить службы, ресурсы Azure, инфраструктуру, перехватчики и конвейер CI/CD, составляющие приложение. При выполнении таких команд, как azd up, azd provisionили azd deployинтерфейс командной строки считывает этот файл, чтобы понять структуру приложения и как развернуть его в Azure.

В этой статье приведен полный справочник по схеме azure.yaml. Сведения о начале работы с шаблонами см. в разделе "Общие сведения о azdшаблонах cli разработчика Azure".

Образец

Ниже приведен универсальный пример azure.yaml файла для azd шаблона. Пример реального мира см azure.yaml . в шаблоне ToDo NodeJs Mongo:

name: yourApp
metadata:
  template: yourApp@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 N объект Определение служб, составляющих приложение.
resources N объект Определение ресурсов Azure, используемых приложением.
pipeline N объект Определение конвейера непрерывной интеграции.
hooks N объект Перехватчики на уровне команд для azd команд.
requiredVersions N объект Предоставляет дополнительную конфигурацию для необходимых версий и расширений azd .
state N объект Предоставляет дополнительную конфигурацию для управления состоянием.
platform N объект Предоставляет дополнительную конфигурацию для функций для конкретных платформ, таких как Центр разработки Azure.
workflows N объект Предоставляет дополнительную конфигурацию для рабочих процессов, таких как поведение переопределения azd up .
cloud N объект Предоставляет дополнительную конфигурацию для развертывания в национальных облаках. Облако по умолчанию .AzureCloud

name

(строка, обязательный) Имя приложения. Разрешены только строчные буквы, цифры и дефисы (-). Имя должно начинаться и заканчиваться буквой или цифрой. Минимальная длина: 2 символа.

name: my-app

resourceGroup

(строка) имя группы ресурсов Azure. При указании переопределяет имя группы ресурсов, используемое для подготовки инфраструктуры. Поддерживает подстановку переменных среды. Должно быть от 3 до 64 символов.

resourceGroup: rg-my-app-${AZURE_ENV_NAME}

metadata

(объект) Метаданные шаблона приложения.

Недвижимость Обязательно Тип Описание
template N струна Идентификатор шаблона, из которого было создано приложение.
metadata:
  template: todo-nodejs-mongo@0.0.1-beta

infra

(объект) Предоставляет дополнительную конфигурацию для подготовки инфраструктуры Azure.

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

Note

Если layers указано по крайней мере с одним элементом, path нельзя использовать свойства и module свойства. Вместо этого используйте определенные path уровни и module значения.

infra.layers

(массив объектов) Определяет уровни подготовки для инфраструктуры Azure. Каждый слой представляет собой независимую единицу подготовки.

Недвижимость Обязательно Тип Описание
name Y струна Имя слоя подготовки.
path Y струна Относительный путь к шаблонам подготовки Azure для указанного поставщика.
module N струна Имя модуля подготовки Azure, используемого при подготовке ресурсов. По умолчанию: main.
dependsOn N массив строк Имена других слоев этого слоя зависят от. Используется для объявления зависимостей с помощью перехватчика (например, когда postprovision крючок в другом слое записывает env var, который bicepparam этого слоя считывает во время подготовки), что azdстатический анализатор не может выводить из.parameters.json.bicep / .bicepparam / содержимого.
hooks N объект Перехватчики слоя подготовки. Поддерживает preprovision и postprovision перехватчики. При указании путей они должны быть относительно пути слоя. См. определение перехватчика.
infra:
  provider: bicep
  layers:
    - name: core
      path: ./infra/core
    - name: services
      path: ./infra/services
      dependsOn:
        - core
      hooks:
        postprovision:
          shell: sh
          run: ./scripts/post-provision.sh

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

Чтобы использовать Terraform вместо Bicep, задайте для него provider значение terraform. Дополнительные сведения см. в статье Об использовании 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

(объект) определение служб, составляющих приложение. Каждый ключ — это имя службы, а значение — объект конфигурации службы.

Свойства службы

Недвижимость Обязательно Тип Описание
host Y струна Тип ресурса Azure, используемого для реализации службы. См. типы узлов.
project Conditional струна Путь к каталогу исходного кода службы. Требуется для большинства типов узлов.
image Conditional струна Исходный образ, используемый для образа контейнера, вместо сборки из источника. Поддерживает подстановку переменных среды. Допустимо только для containerapp узла.
language N струна Язык реализации службы. Допустимые значения: , , , , , , dotnet, csharpfsharppy. pythonjstsjavadocker
module N струна Путь к модулю инфраструктуры, используемому для развертывания службы относительно корневой папки инфраструктуры. Если опущено, интерфейс командной строки предполагает, что имя модуля совпадает с именем службы.
dist N струна Относительный путь к артефактам развертывания службы.
resourceName N струна Имя ресурса Azure, реализующего службу. По умолчанию интерфейс командной строки обнаруживает ресурс Azure с тегом azd-service-name , заданным для имени текущей службы. Поддерживает подстановку переменных среды.
resourceGroup N струна Имя группы ресурсов Azure, содержащей ресурс. При указании ИНТЕРФЕЙС командной строки находит ресурс Azure в указанной группе ресурсов. Поддерживает подстановку переменных среды.
remoteBuild N boolean Следует ли использовать удаленную сборку для развертывания приложения-функции. Допустимо только в том hostслучаеfunction. Если задано значение true, пакет развертывания создается удаленно с помощью Oryx. По умолчанию используется true для приложений-функций JavaScript, TypeScript и Python.
docker N объект Конфигурация Docker. Применимо только для узлов на основе контейнеров. См. docker.
k8s N объект Параметры конфигурации AKS. Допустимо только в том hostслучаеaks. См. k8s.
config N объект Дополнительные параметры конфигурации для службы.
uses N массив Список имен служб и имен ресурсов, от которым зависит эта служба.
env N объект Карта имен переменных среды с значениями. Поддерживает подстановку переменных среды.
apiVersion N струна Версия API поставщика ресурсов для развертываний. Допустимо только в том hostслучаеcontainerapp.
hooks N объект Перехватчики уровня обслуживания. См. перехватчики служб.

Tip

Примеры служб см. в полных примерах YAML различных конфигураций служб.

Типы узлов

Свойство host определяет тип ресурса Azure, используемого для реализации службы, и определяет, какие другие свойства допустимы.

Значение узла Описание Требует project Поддерживает image Поддерживает docker Поддерживает k8s Поддерживает env Поддерживает apiVersion
appservice Служба приложений Azure Y N N N N N
containerapp Приложения-контейнеры Azure project или image (не оба) Y Y N Y Y
function Функции Azure Y N N N N N
staticwebapp Статические веб-приложения Azure Y N N N N N
springapp Приложения Azure Spring Y N N N N N
aks Служба Azure Kubernetes N N Y Y N N
ai.endpoint Конечная точка Azure AI Online Y N Y N N N
azure.ai.agent Агент ИИ Azure Y N Y N N N

Note

springapp для поддержки требуется согласие на альфа-функции. Дополнительные сведения см. в разделе "Альфа-функции".

Note

Если host это containerappтак, необходимо указать либо image или project, но не оба. Если image задано, контейнер развертывается из указанного образа. Если project задано, образ контейнера создается из источника.

ai.endpoint конфигурация

(объект, обязательный при host использовании ai.endpoint) Предоставляет дополнительную конфигурацию для развертывания веб-конечной точки ИИ Azure.

Недвижимость Обязательно Тип Описание
workspace N струна Имя рабочей области проекта AI Studio. При опущении использует значение, azd указанное в переменной AZUREAI_PROJECT_NAME среды. Поддерживает подстановку переменных среды.
flow N объект Конфигурация потока запроса Azure AI Studio. При опущении поток запроса не создается. См. конфигурацию компонента ИИ.
environment N объект Конфигурация пользовательской среды Azure AI Studio. При опущении пользовательская среда не создается. См. конфигурацию компонента ИИ.
model N объект Конфигурация модели Azure AI Studio. При опущении модель не создается. См. конфигурацию компонента ИИ.
deployment Y объект Конфигурация развертывания конечной точки Azure AI Studio online. Создается новое развертывание конечной точки в Сети, и трафик автоматически перемещается в новое развертывание после успешного завершения. См. конфигурацию развертывания ИИ.

Note

При host наличии ai.endpointproject обоих и config обязательных. См ai.endpoint . конфигурацию необходимых свойств конфигурации.

Конфигурация компонента ИИ
Недвижимость Обязательно Тип Описание
name N струна Имя компонента ИИ. Если опущено, azd создается имя на основе типа компонента и имени службы. Поддерживает подстановку переменных среды.
path Y струна Путь к файлу конфигурации компонента ИИ или исходному коду.
overrides N объект Карта пар ключевых значений, используемая для переопределения конфигурации компонента ИИ. Поддерживает подстановку переменных среды.
Конфигурация развертывания ИИ

Наследует все свойства из конфигурации компонента ИИ, а также:

Недвижимость Обязательно Тип Описание
environment N объект Карта пар "ключ-значение", устанавливаемая в качестве переменных среды для развертывания. Значения поддерживают подстановку ос и azd переменных среды.
services:
  myendpoint:
    project: ./src/endpoint
    host: ai.endpoint
    config:
      workspace: my-ai-project
      deployment:
        path: ./deployment
        environment:
          MODEL_NAME: ${AZURE_OPENAI_MODEL}

docker

(объект) Конфигурация Docker для службы. Применимо только для узлов, поддерживающих контейнеры (containerapp, aks, , ai.endpointazure.ai.agent).

Недвижимость Обязательно Тип Описание
path N струна Путь к Dockerfile относительно службы. По умолчанию: ./Dockerfile.
context N струна Контекст сборки Docker. При указании переопределяет контекст по умолчанию. По умолчанию: ..
platform N струна Целевой объект платформы. По умолчанию: amd64.
registry N струна Реестр контейнеров для отправки образа. Если опущено, по умолчанию используется значение переменной AZURE_CONTAINER_REGISTRY_ENDPOINT среды. Поддерживает подстановку переменных среды.
image N струна Имя, которое применяется к созданному образу контейнера. Если опущен, по умолчанию используется значение {appName}/{serviceName}-{environmentName}. Поддерживает подстановку переменных среды.
tag N струна Тег, применяемый к созданному образу контейнера. Если опущен, по умолчанию используется значение azd-deploy-{unix time (seconds)}. Поддерживает подстановку переменных среды.
buildArgs N массив строк Выполните сборку аргументов для передачи команде сборки Docker.
network N струна Сетевой режим для инструкций RUN во время сборки Docker. Передано как --network в сборку Docker. Например, используйте host для разрешения контейнера сборки доступ к сети узла.
remoteBuild N boolean Следует ли удаленно создавать образ. Если задано значение true, образ создается удаленно с помощью функции удаленной сборки реестра контейнеров Azure. Если удаленная сборка завершается ошибкой, azd автоматически возвращается к созданию локально с помощью Docker или Podman, если он доступен.

k8s

(объект) Параметры конфигурации службы Azure Kubernetes (AKS). Допустимо только в том hostслучаеaks.

Недвижимость Обязательно Тип Описание
deploymentPath N струна Относительный путь от пути службы к манифестам развертывания k8s. По умолчанию: manifests.
namespace N струна Пространство имен k8s развернутых ресурсов. При указании создается новое пространство имен k8s, если оно еще не существует. По умолчанию: имя проекта.
deployment N объект Конфигурация развертывания k8s. См. конфигурацию развертывания.
service N объект Конфигурация службы k8s. См. конфигурацию службы.
ingress N объект Конфигурация входящего трафика k8s. См. конфигурацию входящего трафика.
helm N объект Конфигурация helm. См. конфигурацию Helm.
kustomize N объект Конфигурация kustomize. См. конфигурацию Kustomize.
Конфигурация развертывания
Недвижимость Обязательно Тип Описание
name N струна Имя ресурса развертывания k8s, используемого во время развертывания. Если этот параметр не задан, выполняет поиск ресурса развертывания в том же пространстве имен, где содержится имя службы. По умолчанию: имя службы.
Конфигурация службы
Недвижимость Обязательно Тип Описание
name N струна Имя ресурса службы k8s, используемого в качестве конечной точки службы по умолчанию. Если этот параметр не задан, выполняет поиск ресурса службы в том же пространстве имен, где содержится имя службы. По умолчанию: имя службы.
Конфигурация входящего трафика
Недвижимость Обязательно Тип Описание
name N струна Имя ресурса входящего трафика k8s, используемого в качестве конечной точки службы по умолчанию. Если не задано, выполните поиск ресурса входящего трафика в том же пространстве имен, которое содержит имя службы. По умолчанию: имя службы.
relativePath N струна Относительный путь к службе из корня контроллера входящего трафика. При установке он добавляется в корень пути к ресурсу входящего трафика.
Конфигурация Helm
Недвижимость Обязательно Тип Описание
repositories N массив Добавляемые репозитории helm.
releases N массив Выпуски helm для установки.

repositories Элементы массива:

Недвижимость Обязательно Тип Описание
name Y струна Имя репозитория helm.
url Y струна URL-адрес репозитория helm.

releases Элементы массива:

Недвижимость Обязательно Тип Описание
name Y струна Имя выпуска helm.
chart Y струна Имя диаграммы helm.
version N струна Версия диаграммы helm.
namespace N струна Пространство имен k8s для установки диаграммы helm. По умолчанию используется пространство имен службы.
values N струна Относительный values.yaml путь от службы к диаграмме helm.
Конфигурация Kustomize
Недвижимость Обязательно Тип Описание
dir N струна Относительный путь к каталогу kustomize. Поддерживает подстановку переменных среды.
edits N массив строк Изменения kustomize, применяемые перед развертыванием. Поддерживает подстановку переменных среды.
env N объект Пары "Ключ-значение среды", используемые для создания .env файла в каталоге kustomize. Значения поддерживают подстановку переменных среды.

Механизмы сервисных подключений

Перехватчики уровня обслуживания выполняются во время событий жизненного цикла службы. Перехватчики должны совпадать с именами событий службы, префиксами или prepost. При указании путей они должны быть относительно пути службы. Дополнительные сведения см. в статье Настройка рабочих процессов azure Developer CLI с помощью команд и событий.

Поддерживаемые перехватчики служб: prerestore, postrestoreprebuildpostbuildprepackagepostpackageprepublishpostpublish, . predeploypostdeploy

Каждый перехватчик использует формат определения перехватчика .

Примеры служб

Контейнерные приложения с параметрами Docker
services:
  api:
    project: ./src/api
    language: js
    host: containerapp
    docker:
      path: ./Dockerfile
      context: ../
  web:
    project: ./src/web
    language: js
    host: containerapp
    docker:
      remoteBuild: true
Приложения-контейнеры из предварительно созданного образа
services:
  api:
    image: myregistry.azurecr.io/myapp:latest
    host: containerapp
AKS с перехватчиками уровня обслуживания
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}

resources

(объект) Определение ресурсов Azure, используемых приложением. Каждый ключ — это имя ресурса, а значение — объект конфигурации ресурсов. Ресурсы можно ссылаться на службы через uses свойство.

Общие свойства ресурса

Недвижимость Обязательно Тип Описание
type Y струна Тип ресурса. См. сведения о типах ресурсов.
uses N массив Другие ресурсы, от которые зависит этот ресурс.
existing N boolean Если задано значение true, этот ресурс не создается и вместо этого используется для ссылок. По умолчанию: false.

Tip

См. пример ресурсов для полного примера YAML, объединяющего несколько типов ресурсов.

Типы ресурсов

Свойство type определяет тип ресурса Azure и управляет доступными дополнительными свойствами.

Значение типа Описание Дополнительные свойства
host.appservice Веб-приложение Службы приложений Azure См host.appservice . свойства.
host.containerapp Приложение контейнера на основе Docker См host.containerapp . свойства.
ai.openai.model Развернутая модель ИИ, готовая к использованию См ai.openai.model . свойства.
ai.project Проект Microsoft Foundry с моделями См ai.project . свойства.
ai.search Поиск с использованием ИИ Azure См ai.search . свойства.
db.postgres База данных Azure для PostgreSQL Никаких дополнительных свойств.
db.mysql База данных Azure для MySQL Никаких дополнительных свойств.
db.redis Кэш Azure для Redis Никаких дополнительных свойств.
db.mongo Azure Cosmos DB для MongoDB Никаких дополнительных свойств.
db.cosmos Azure Cosmos DB для NoSQL См db.cosmos . свойства.
messaging.eventhubs Пространство имен Центров событий Azure См messaging.eventhubs . свойства.
messaging.servicebus пространство имен Служебная шина Azure См messaging.servicebus . свойства.
storage Учетная запись хранения Azure См storage . свойства.
keyvault Azure Key Vault См keyvault . свойства.

свойства host.appservice

Недвижимость Обязательно Тип Описание
port N целое число Порт, который прослушивает веб-приложение. По умолчанию: 80.
runtime Y объект Конфигурация среды выполнения языка. См. ниже.
env N массив переменные среды Каждый элемент имеет (обязательно), nameа также valuesecret свойства. Поддерживает подстановку переменных среды.
startupCommand N струна Команда запуска, которая выполняется в процессе запуска веб-приложения.
uses N массив строк Другие ресурсы, используемые этим ресурсом.

runtime Объекта:

Недвижимость Обязательно Тип Описание
stack Y струна Стек среды выполнения языка. Допустимые значения: node, python.
version Y струна Версия среды выполнения языка. Формат зависит от стека (например, 22-lts для Node, 3.13 для Python).
resources:
  web:
    type: host.appservice
    port: 8080
    runtime:
      stack: node
      version: 22-lts
    uses:
      - db

свойства host.containerapp

Недвижимость Обязательно Тип Описание
port N целое число Порт, в который приложение-контейнер прослушивает. По умолчанию: 80.
env N массив переменные среды Каждый элемент имеет (обязательно), nameа также valuesecret свойства. Поддерживает подстановку переменных среды.
uses N массив строк Другие ресурсы, используемые этим ресурсом.

свойства ai.openai.model

Недвижимость Обязательно Тип Описание
model Conditional объект Базовая модель ИИ. Обязательный, если existing имеет значение false.
existing N boolean Если задано значение true, этот ресурс не создается и вместо этого используется для ссылок. По умолчанию: false.

model Объекта:

Недвижимость Обязательно Тип Описание
name Y струна Имя модели ИИ.
version Y струна Версия модели ИИ.
resources:
  chatModel:
    type: ai.openai.model
    model:
      name: gpt-4o
      version: "2024-08-06"

свойства ai.project

Недвижимость Обязательно Тип Описание
models N массив Модели ИИ, которые будут развернуты в рамках проекта ИИ.
existing N boolean Если задано значение true, этот ресурс не создается и вместо этого используется для ссылок. По умолчанию: false.

models Элементы массива:

Недвижимость Обязательно Тип Описание
name Y струна Имя модели ИИ.
version Y струна Версия модели ИИ.
format Y струна Формат модели ИИ (например, Microsoft). OpenAI
sku Y объект Конфигурация SKU для модели ИИ.

sku Объекта:

Недвижимость Обязательно Тип Описание
name Y струна Имя номера SKU (например, GlobalStandard).
usageName Y струна Имя номера SKU для выставления счетов (например, OpenAI.GlobalStandard.gpt-4o-mini).
capacity Y целое число Емкость номера SKU.

свойства ai.search

Недвижимость Обязательно Тип Описание
existing N boolean Если задано значение true, этот ресурс не создается и вместо этого используется для ссылок. По умолчанию: false.

свойства db.cosmos

Недвижимость Обязательно Тип Описание
containers N массив Контейнеры для хранения данных. Каждый контейнер хранит коллекцию элементов.

containers Элементы массива:

Недвижимость Обязательно Тип Описание
name Y струна Имя контейнера.
partitionKeys Y массив Ключи секций, используемые для распределения данных между секциями. Максимум 3 ключа. По умолчанию: /id.

свойства messaging.eventhubs

Недвижимость Обязательно Тип Описание
hubs N массив строк Имена концентраторов для создания в пространстве имен Центров событий.
existing N boolean Если задано значение true, этот ресурс не создается и вместо этого используется для ссылок. По умолчанию: false.

свойства messaging.servicebus

Недвижимость Обязательно Тип Описание
queues N массив строк Имена очередей для создания в пространстве имен служебной шины.
topics N массив строк Имена разделов для создания в пространстве имен служебной шины.
existing N boolean Если задано значение true, этот ресурс не создается и вместо этого используется для ссылок. По умолчанию: false.

свойства storage

Недвижимость Обязательно Тип Описание
containers N массив строк Имена контейнеров учетной записи хранения Azure.
existing N boolean Если задано значение true, этот ресурс не создается и вместо этого используется для ссылок. По умолчанию: false.

свойства keyvault

Недвижимость Обязательно Тип Описание
existing N boolean Если задано значение true, этот ресурс не создается и вместо этого используется для ссылок. По умолчанию: false.

Пример ресурсов

resources:
  db:
    type: db.postgres
  cache:
    type: db.redis
  chatModel:
    type: ai.openai.model
    model:
      name: gpt-4o
      version: "2024-08-06"
  web:
    type: host.containerapp
    port: 3100
    uses:
      - db
      - chatModel

pipeline

(объект) определение конвейера непрерывной интеграции.

Недвижимость Обязательно Тип Описание
provider N струна Поставщик конвейера, используемый для непрерывной интеграции. По умолчанию: github. Допустимые значения: github, azdo.
variables N массив строк Список переменных среды, используемых azd в конвейере в качестве переменных.
secrets N массив строк Список переменных среды, используемых azd в конвейере в качестве секретов.
pipeline:
  provider: azdo
  variables:
    - CUSTOM_SETTING
  secrets:
    - API_KEY

hooks

(объект) Перехватчики уровня команд. Перехватчики должны соответствовать именам команд azd с префиксом pre или post в зависимости от того, когда скрипт должен выполняться. При указании путей они должны быть относительно пути проекта. Дополнительные сведения см. в статье Настройка рабочих процессов azure Developer CLI с помощью команд и событий.

Поддерживаемые перехватчики команд: preprovision, postprovisionpreinfracreatepostinfracreatepreinfradeletepostinfradeletepredownpostdownpreuppostupprepackagepostpackageprepublishpostpublishpredeploypostdeployprerestorepostrestore;

Каждый перехватчик использует формат определения перехватчика .

Tip

Примеры перехватчиков см. в полных примерах YAML, включая крючки для конкретной платформы, типизированные исполнителя и несколько перехватчиков на событие.

hooks:
  preprovision:
    shell: sh
    run: ./scripts/setup.sh
  postdeploy:
    shell: sh
    run: azd env set APP_URL ${SERVICE_WEB_ENDPOINT_URL}

Определение перехватчика

Крючок может быть одним объектом перехватчика или массивом объектов перехватчика. Каждый объект перехватчика имеет следующие свойства:

Недвижимость Обязательно Тип Описание
run Conditional струна Встроенный скрипт или относительный путь к скрипту. Обязательный при указании shell, kind, dirinteractivecontinueOnError, secretsили .config При указании встроенного скрипта также необходимо указать используемый shell сценарий. Оболочка автоматически выводится при использовании путей к файлам.
shell N струна Тип оболочки для выполнения скриптов. По умолчанию: sh. Допустимые значения: sh, pwsh.
kind N струна Тип исполнителя для скрипта перехватчика. При опущении тип обнаруживается автоматически из расширения run файла пути (например, .py становится python, .ps1 становится pwsh). Допустимые значения: sh, pwsh, js, ts, python, dotnet.
dir N струна Рабочий каталог для выполнения перехватчика. Используется в качестве корневого каталога проекта для установки зависимостей и в качестве рабочего каталога при запуске скрипта. Относительные пути разрешаются из корневого каталога проекта или службы. Если опущено, по умолчанию используется каталог, содержащий файл скрипта.
continueOnError N boolean Указывает, останавливает ли ошибка скрипта azd команду. По умолчанию: false.
interactive N boolean Выполняется ли скрипт в интерактивном режиме, привязке к stdinи stdoutstderr запущенной консоли. По умолчанию: false.
windows N объект При указании переопределяет конфигурацию перехватчика при выполнении в средах Windows. Использует тот же формат объекта перехватчика.
posix N объект При указании переопределяет конфигурацию перехватчика при выполнении в средах POSIX (Linux и macOS). Использует тот же формат объекта перехватчика.
secrets N объект Карта azd переменных среды для перехвата секретов. Если переменная была задана в качестве секрета в среде, значение секрета передается в перехватчик.
config N объект Конфигурация для конкретного исполнителя. Доступные свойства зависят от kind значения. См . конфигурацию исполнителя перехватчика.

Note

windows Если оба значения и posix указаны, runсвойства , shellkinddirinteractivecontinueOnErrorsecretsи config свойства не могут использоваться на верхнем уровне. Вместо этого используйте объекты для конкретной платформы.

Настройка исполнителя перехватчика

Свойство config принимает различные свойства в зависимости от kind значения.

Конфигурация JavaScript и TypeScript (js, ts)

Недвижимость Обязательно Тип Описание
packageManager N струна Диспетчер пакетов, используемый для установки зависимостей. Переопределяет автоматическое обнаружение из файлов блокировки. Допустимые значения: npm, pnpm, yarn.

Конфигурация Python

Недвижимость Обязательно Тип Описание
virtualEnvName N струна Имя каталога для виртуальной среды Python. По умолчанию используется автоматическое обнаружение (.venv, venvили {baseName}_env).

Конфигурация .NET (dotnet)

Недвижимость Обязательно Тип Описание
configuration N струна Конфигурация MSBuild для создания скрипта перехватчика (например, Debug, Release).
framework N струна Моникер целевой платформы для создания и запуска скрипта перехватчика (например, net8.0, net10.0).

Конфигурация оболочки (sh, pwsh)

В настоящее время исполнители оболочки не поддерживают config свойства.

Примеры перехватчика

Крючки для конкретной платформы

hooks:
  preprovision:
    windows:
      shell: pwsh
      run: ./scripts/setup.ps1
    posix:
      shell: sh
      run: ./scripts/setup.sh

Крючок Python с типом

hooks:
  postprovision:
    kind: python
    run: ./scripts/seed-data.py
    dir: ./scripts
    config:
      virtualEnvName: .venv

Несколько перехватчиков для одного события

hooks:
  postprovision:
    - shell: sh
      run: ./scripts/step1.sh
    - shell: sh
      run: ./scripts/step2.sh

requiredVersions

(объект) Предоставляет дополнительную конфигурацию для необходимых версий и расширений azd .

Недвижимость Обязательно Тип Описание
azd N струна Диапазон поддерживаемых версий azd для этого проекта. Если версия находится за пределами azd этого диапазона, проект не загружается. Поддерживает синтаксис диапазона semver.
extensions N объект Карта обязательных расширений и ограничений версий для этого проекта. Поддерживает ограничения semver. Если версия опущена, установлена последняя версия.
requiredVersions:
  azd: ">= 0.6.0-beta.3"
  extensions:
    azure.ai.agents: ">=1.0.0"
    my-extension: latest

state

(объект) Предоставляет дополнительную конфигурацию для управления состоянием.

Недвижимость Обязательно Тип Описание
remote N объект Предоставляет дополнительную конфигурацию для удаленного управления состояниями. См. state.remote.

state.remote

Недвижимость Обязательно Тип Описание
backend Y струна Тип серверной части удаленного состояния. По умолчанию: AzureBlobStorage. Допустимые значения: AzureBlobStorage.
config Conditional объект Конфигурация для конкретной серверной части. Обязательный, если backend имеет значение AzureBlobStorage. См. конфигурацию хранилища BLOB-объектов Azure.

Конфигурация хранилища BLOB-объектов Azure

Недвижимость Обязательно Тип Описание
accountName Y струна Имя аккаунта служба хранилища Azure.
containerName N струна Имя контейнера службы хранилища Azure. По умолчанию используется имя проекта, если оно не указано.
endpoint N струна Конечная точка службы хранилища Azure. По умолчанию: blob.core.windows.net.
state:
  remote:
    backend: AzureBlobStorage
    config:
      accountName: mystorageaccount
      containerName: azd-state

platform

(объект) Предоставляет дополнительную конфигурацию для функций для конкретных платформ, таких как Центр разработки Azure.

Недвижимость Обязательно Тип Описание
type Y струна Тип платформы. Допустимые значения: devcenter.
config N объект Конфигурация для конкретной платформы. См. конфигурацию Центра разработки.

Конфигурация Центра разработки

Доступно при type наличии devcenter:

Недвижимость Обязательно Тип Описание
name N струна Имя Центра разработки Azure. Используется в качестве центра разработки по умолчанию для этого проекта.
project N струна Имя проекта Центра разработки Azure.
catalog N струна Имя каталога Центра разработки Azure.
environmentDefinition N струна Имя определения среды каталога Центра разработки.
environmentType N струна Тип среды проекта Центра разработки, используемый для среды развертывания.
platform:
  type: devcenter
  config:
    name: my-devcenter
    project: my-project
    catalog: my-catalog
    environmentDefinition: my-env-def
    environmentType: dev

workflows

(объект) Предоставляет дополнительную конфигурацию для рабочих процессов, таких как поведение переопределения azd up .

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

Шаги рабочего процесса

Рабочий upsteps процесс принимает массив (или может быть указан непосредственно как массив). Каждый шаг выполняет azd команду.

Недвижимость Обязательно Тип Описание
azd Y строка или объект Команда azd для выполнения. Может быть строка (например, provision) или объект с массивом args .

Настройка порядка шагов рабочего процесса

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

cloud

(объект) Предоставляет дополнительную конфигурацию для развертывания в национальных облаках, таких как Azure для государственных организаций. Облако по умолчанию .AzureCloud

Недвижимость Обязательно Тип Описание
name N струна Имя облачной среды. Допустимые значения: AzureCloud, AzureChinaCloud, AzureUSGovernment.
cloud:
  name: AzureUSGovernment

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

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

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