Azure 开发人员 CLI 架构参考

该文件 azure.yaml 是 Azure 开发人员 CLI (azd) 项目的配置文件。 将其置于项目的根目录中,以定义构成应用程序的服务、Azure 资源、基础结构、挂钩和 CI/CD 管道。 运行命令(或 azd upazd provisionazd deployCLI)时,会读取此文件以了解应用的结构以及如何将其部署到 Azure。

本文是 azure.yaml 架构的完整参考。 有关模板入门 azd ,请参阅 Azure 开发人员 CLI 模板概述

样本

下面是模板文件的azure.yaml一般示例azd。 有关实际示例,请参阅 azure.yamlToDo 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

(string) 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。 允许的值:bicepterraform
path N 字符串 指定提供程序的 Azure 预配模板的相对文件夹路径。 默认值:infra
module N 字符串 Azure 预配模板中默认模块的名称。 默认值:main
layers N 数组 Azure 基础结构预配的层。 请参阅 infra.layers

注释

如果 layers 指定了至少一个项, path 则无法使用和 module 属性。 请改用特定于 path 层的值和 module 值。

infra.layers

(对象数组) 定义 Azure 基础结构的预配层。 每个层表示独立的预配单元。

财产 必填 类型 描述
name Y 字符串 预配层的名称。
path Y 字符串 指定提供程序的 Azure 预配模板的相对文件夹路径。
module N 字符串 预配资源时使用的 Azure 预配模块的名称。 默认值:main
dependsOn N 字符串数组 此层所依赖的其他层的名称。 用于声明挂钩中介依赖项(例如,postprovision当另一层中的挂钩写入此层的 bicepparam 在预配时读取的 env var 时),azd静态分析器无法从.parameters.json.bicep / .bicepparam / 内容推断。
hooks N 对象 预配层挂钩。 支持 preprovisionpostprovision 挂钩。 指定路径时,它们应相对于层路径。 请参阅 Hook 定义
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

(object) 构成应用程序的服务的定义。 每个密钥都是服务名称,值是服务配置对象。

服务属性

财产 必填 类型 描述
host Y 字符串 用于服务实现的 Azure 资源的类型。 请参阅 主机类型
project Conditional 字符串 服务源代码目录的路径。 大多数主机类型都是必需的。
image Conditional 字符串 要用于容器映像的源映像,而不是从源生成。 支持环境变量替换。 仅对 containerapp 主机有效。
language N 字符串 服务实现语言。 允许的值:dotnetcsharpfsharppypythonjstsjava, , , 。 docker
module N 字符串 用于部署服务相对于根基础结构文件夹的基础结构模块的路径。 如果省略,CLI 假定模块名称与服务名称相同。
dist N 字符串 服务部署项目的相对路径。
resourceName N 字符串 实现服务的 Azure 资源的名称。 默认情况下,CLI 会发现已设置为当前服务名称的标记 azd-service-name 的 Azure 资源。 支持环境变量替换。
resourceGroup N 字符串 包含资源的 Azure 资源组的名称。 指定后,CLI 将查找指定资源组中的 Azure 资源。 支持环境变量替换。
remoteBuild N 布尔 是否对函数应用部署使用远程生成。 仅当 hostfunction. 设置为该部署 true包时,将使用 Oryx 远程生成部署包。 true默认为 JavaScript、TypeScript 和 Python 函数应用。
docker N 对象 Docker 配置。 仅适用于基于容器的主机。 请参阅 docker
k8s N 对象 AKS 配置选项。 仅当 hostaks. 请参阅 k8s
config N 对象 服务的额外配置选项。
uses N 数组 此服务依赖的服务名称和资源名称的列表。
env N 对象 环境变量名称映射到值。 支持环境变量替换。
apiVersion N 字符串 部署的资源提供程序 API 版本。 仅当 hostcontainerapp.
hooks N 对象 服务级别挂钩。 请参阅 服务挂钩

Tip

有关不同服务配置的完整 YAML 示例,请参阅 服务示例

主机类型

host 属性确定用于服务实现的 Azure 资源的类型,并控制哪些其他属性有效。

主机值 描述 需要 project 支持 image 支持 docker 支持 k8s 支持 env 支持 apiVersion
appservice Azure App 服务 Y N N N N N
containerapp Azure 容器应用 projectimage (不是两者) Y Y N Y Y
function Azure Functions Y N N N N N
staticwebapp Azure Static Web Apps Y N N N N N
springapp Azure Spring Apps Y N N N N N
aks Azure Kubernetes 服务 N N Y Y N N
ai.endpoint Azure AI 联机终结点 Y N Y N N N
azure.ai.agent Azure AI 代理 Y N Y N N N

注释

springapp 支持需要选择加入 alpha 功能。 有关详细信息,请参阅 Alpha 功能

注释

如果hostcontainerapp,则必须提供或imageproject,但不能同时提供这两者。 如果 image 已设置,则从指定的映像部署容器。 如果 project 已设置,则从源生成容器映像。

ai.endpoint 配置

(对象,需要何时hostai.endpoint 为 Azure AI 联机终结点部署提供其他配置。

财产 必填 类型 描述
workspace N 字符串 AI Studio 项目工作区的名称。 如果省略, azd 请使用环境变量中指定的 AZUREAI_PROJECT_NAME 值。 支持环境变量替换。
flow N 对象 Azure AI Studio Prompt Flow 配置。 省略时,不会创建提示流。 请参阅 AI 组件配置
environment N 对象 Azure AI Studio 自定义环境配置。 省略时,不会创建自定义环境。 请参阅 AI 组件配置
model N 对象 Azure AI Studio 模型配置。 省略时,不会创建模型。 请参阅 AI 组件配置
deployment Y 对象 Azure AI Studio 联机终结点部署配置。 创建新的联机终结点部署,并在成功完成后自动将流量转移到新部署。 请参阅 AI 部署配置

注释

何时hostai.endpoint为这两者project,并且config均是必需的。 请参阅ai.endpoint所需配置属性的配置。

AI 组件配置
财产 必填 类型 描述
name N 字符串 AI 组件的名称。 省略时, azd 根据组件类型和服务名称生成名称。 支持环境变量替换。
path Y 字符串 AI 组件配置文件或源代码的路径。
overrides N 对象 用于替代 AI 组件配置的键值对的映射。 支持环境变量替换。
AI 部署配置

AI 组件配置继承所有属性,以及:

财产 必填 类型 描述
environment N 对象 要设置为部署环境变量的键/值对的映射。 值支持 OS 和 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、、 aksai.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 字符串 Docker 生成期间 RUN 指令的网络模式。 --network传递给 docker 生成。 例如,用于 host 允许生成容器访问主机网络。
remoteBuild N 布尔 是否远程生成映像。 如果设置为 true该映像,则使用 Azure 容器注册表远程生成功能远程生成映像。 如果远程生成失败, azd 请使用 Docker 或 Podman 自动回退到本地生成(如果可用)。

k8s

(对象) Azure Kubernetes 服务 (AKS) 配置选项。 仅当 hostaks.

财产 必填 类型 描述
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 字符串 helm 存储库的 URL。

releases 数组项:

财产 必填 类型 描述
name Y 字符串 helm 版本的名称。
chart Y 字符串 helm 图表的名称。
version N 字符串 helm 图表的版本。
namespace N 字符串 要安装 helm 图表的 k8s 命名空间。 默认为服务命名空间。
values N 字符串 从服务到要 values.yaml 传递到 helm 图表的相对路径。
Kustomize 配置
财产 必填 类型 描述
dir N 字符串 kustomize 目录的相对路径。 支持环境变量替换。
edits N 字符串数组 在部署之前要应用的 kustomize 编辑。 支持环境变量替换。
env N 对象 用于在 kustomize 目录中生成 .env 文件的环境键/值对。 值支持环境变量替换。

服务挂钩

服务级别挂钩在服务生命周期事件期间执行。 挂钩应与前缀为 prepost. 指定路径时,它们应相对于服务路径。 有关详细信息,请参阅 使用命令和事件挂钩自定义 Azure 开发人员 CLI 工作流

支持的服务挂钩:prerestore、、、postrestoreprebuildpostbuildprepackagepostpackageprepublish、。 postpublishpredeploypostdeploy

每个挂钩都使用 挂钩定义 格式。

服务示例

使用 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 布尔 设置为 true此资源时,不会创建此资源,而是用于引用目的。 默认值:false

Tip

有关合并多个资源类型的完整 YAML 示例,请参阅 “资源”示例

资源类型

type 属性确定 Azure 资源的类型,并控制哪些附加属性可用。

类型值 描述 其他属性
host.appservice Azure 应用服务 Web 应用 请参阅 host.appservice 属性
host.containerapp 基于 Docker 的容器应用 请参阅 host.containerapp 属性
ai.openai.model 已部署的现成 AI 模型 请参阅 ai.openai.model 属性
ai.project 具有模型的 Microsoft Foundry 项目 请参阅 ai.project 属性
ai.search Azure AI 搜索 请参阅 ai.search 属性
db.postgres Azure Database for PostgreSQL 没有额外的属性。
db.mysql Azure Database for MySQL 没有额外的属性。
db.redis Azure Cache for Redis 没有额外的属性。
db.mongo Azure Cosmos DB for MongoDB 没有额外的属性。
db.cosmos Azure Cosmos DB for NoSQL 请参阅 db.cosmos 属性
messaging.eventhubs Azure 事件中心命名空间 请参阅 messaging.eventhubs 属性
messaging.servicebus Azure 服务总线命名空间 请参阅 messaging.servicebus 属性
storage Azure 存储 帐户 请参阅 storage 属性
keyvault Azure 密钥保管库 请参阅 keyvault 属性

host.appservice 属性

财产 必填 类型 描述
port N 整数 Web 应用侦听的端口。 默认值:80
runtime Y 对象 语言运行时配置。 请参阅下文。
env N 数组 环境变量。 每个项都有 name (必需) valuesecret 属性。 支持环境变量替换。
startupCommand N 字符串 作为 Web 应用启动的一部分运行的启动命令。
uses N 字符串数组 此资源使用的其他资源。

runtime 对象:

财产 必填 类型 描述
stack Y 字符串 语言运行时堆栈。 允许的值:nodepython
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 对象 基础 AI 模型。 当 existingfalse 时为必需项。
existing N 布尔 设置为 true此资源时,不会创建此资源,而是用于引用目的。 默认值:false

model 对象:

财产 必填 类型 描述
name Y 字符串 AI 模型的名称。
version Y 字符串 AI 模型的版本。
resources:
  chatModel:
    type: ai.openai.model
    model:
      name: gpt-4o
      version: "2024-08-06"

ai.project 属性

财产 必填 类型 描述
models N 数组 要作为 AI 项目的一部分部署的 AI 模型。
existing N 布尔 设置为 true此资源时,不会创建此资源,而是用于引用目的。 默认值:false

models 数组项:

财产 必填 类型 描述
name Y 字符串 AI 模型的名称。
version Y 字符串 AI 模型的版本。
format Y 字符串 AI 模型的格式(例如 MicrosoftOpenAI)。
sku Y 对象 AI 模型的 SKU 配置。

sku 对象:

财产 必填 类型 描述
name Y 字符串 SKU 的名称(例如 GlobalStandard)。
usageName Y 字符串 用于计费目的的 SKU 的使用名称(例如 OpenAI.GlobalStandard.gpt-4o-mini)。
capacity Y 整数 SKU 的容量。

ai.search 属性

财产 必填 类型 描述
existing N 布尔 设置为 true此资源时,不会创建此资源,而是用于引用目的。 默认值:false

db.cosmos 属性

财产 必填 类型 描述
containers N 数组 用于存储数据的容器。 每个容器存储一组项。

containers 数组项:

财产 必填 类型 描述
name Y 字符串 容器的名称。
partitionKeys Y 数组 用于跨分区分布数据的分区键(s)。 最多 3 个键。 默认值:/id

messaging.eventhubs 属性

财产 必填 类型 描述
hubs N 字符串数组 在事件中心命名空间中创建的中心名称。
existing N 布尔 设置为 true此资源时,不会创建此资源,而是用于引用目的。 默认值:false

messaging.servicebus 属性

财产 必填 类型 描述
queues N 字符串数组 在服务总线命名空间中创建的队列名称。
topics N 字符串数组 在服务总线命名空间中创建的主题名称。
existing N 布尔 设置为 true此资源时,不会创建此资源,而是用于引用目的。 默认值:false

storage 属性

财产 必填 类型 描述
containers N 字符串数组 Azure 存储帐户容器名称。
existing N 布尔 设置为 true此资源时,不会创建此资源,而是用于引用目的。 默认值:false

keyvault 属性

财产 必填 类型 描述
existing N 布尔 设置为 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。 允许的值:githubazdo
variables N 字符串数组 azd在管道中用作变量的环境变量列表。
secrets N 字符串数组 azd在管道中用作机密的环境变量列表。
pipeline:
  provider: azdo
  variables:
    - CUSTOM_SETTING
  secrets:
    - API_KEY

hooks

(对象) 命令级别挂钩。 挂钩应与前缀为 azdprepost 命令名称匹配,具体取决于脚本的执行时间。 指定路径时,它们应相对于项目路径。 有关详细信息,请参阅 使用命令和事件挂钩自定义 Azure 开发人员 CLI 工作流

支持的命令挂钩:preprovision、、postprovisionpreinfracreatepostinfracreate、。 preinfradeletepostinfradeletepredownpostdownpreuppostupprepackagepostpackageprepublishpostpublishpredeploypostdeployprerestorepostrestore

每个挂钩都使用 挂钩定义 格式。

Tip

有关完整的 YAML 示例,请参阅 Hook 示例 ,包括特定于平台的挂钩、类型化执行程序以及每个事件的多个挂钩。

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

挂钩定义

挂钩可以是单个挂钩对象或挂钩对象的数组。 每个挂钩对象具有以下属性:

财产 必填 类型 描述
run Conditional 字符串 脚本的内联脚本或相对路径。 指定shell、、kinddirinteractivecontinueOnErrorsecretsconfig时必需。 指定内联脚本时,还必须指定 shell 要使用的脚本。 使用文件路径时,会自动推断 shell。
shell N 字符串 要执行脚本的 shell 类型。 默认值:sh。 允许的值:shpwsh
kind N 字符串 挂钩脚本的执行程序类型。 省略时,将从路径的run文件扩展名(例如,.py变为,变为python.ps1pwsh自动检测类型。 允许的值:shpwshjstspythondotnet
dir N 字符串 用于挂钩执行的工作目录。 用作依赖项安装的项目根目录,并在运行脚本时用作工作目录。 从项目或服务根目录解析相对路径。 省略时,默认为包含脚本文件的目录。
continueOnError N 布尔 脚本错误是否停止 azd 命令。 默认值:false
interactive N 布尔 脚本是否以交互模式运行、绑定到stdinstdoutstderr和正在运行的控制台。 默认值:false
windows N 对象 指定后,在 Windows 环境中执行时重写挂钩配置。 使用相同的挂钩对象格式。
posix N 对象 指定后,在 POSIX(Linux 和 macOS)环境中执行时重写挂钩配置。 使用相同的挂钩对象格式。
secrets N 对象 用于挂钩机密的 azd 环境变量映射。 如果变量在环境中设置为机密,则会将机密值传递给挂钩。
config N 对象 执行程序特定的配置。 可用属性取决于 kind 值。 请参阅 Hook 执行程序配置

注释

windows当同时指定和posix指定时,run不能在顶级使用 、、shellkinddirinteractivecontinueOnErrorsecretsconfig属性。 请改用特定于平台的对象。

挂钩执行程序配置

config 属性接受不同的属性,具体取决于 kind 值。

JavaScript 和 TypeScript (jsts) 配置

财产 必填 类型 描述
packageManager N 字符串 用于依赖项安装的包管理器。 替代锁定文件中的自动检测。 允许的值:npmpnpmyarn

Python 配置

财产 必填 类型 描述
virtualEnvName N 字符串 Python 虚拟环境的目录名称。 默认为自动检测(.venv,或venv{baseName}_env)。

.NET (dotnet) 配置

财产 必填 类型 描述
configuration N 字符串 用于生成挂钩脚本的 MSBuild 配置(例如,DebugRelease)。
framework N 字符串 用于生成和运行挂钩脚本的目标框架名字对象(例如,net8.0)。 net10.0

Shell (shpwsh) 配置

Shell 执行程序目前 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 对象 特定于后端的配置。 当 backendAzureBlobStorage 时为必需项。 请参阅 Azure Blob 存储配置

Azure Blob 存储配置

财产 必填 类型 描述
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

工作流步骤

工作流 up 接受 steps 数组(也可以直接指定为数组)。 每个步骤都运行一个 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 字符串 云环境名称。 允许的值:AzureCloudAzureChinaCloudAzureUSGovernment
cloud:
  name: AzureUSGovernment

请求帮助

有关如何提交 bug、请求帮助或为 Azure 开发人员 CLI 提出新功能的信息,请访问 故障排除和支持 页。

后续步骤