Informations de référence sur le schéma Azure Developer CLI

Le azure.yaml fichier est le fichier de configuration pour les projets Azure Developer CLI (azd). Placez-le à la racine de votre projet pour définir les services, les ressources Azure, l’infrastructure, les hooks et le pipeline CI/CD qui composent votre application. Lorsque vous exécutez des commandes telles que azd up, azd provisionou azd deploy, l’interface CLI lit ce fichier pour comprendre la structure de votre application et comment la déployer sur Azure.

Cet article est une référence complète pour le schéma azure.yaml. Pour bien démarrer avec azd les modèles, consultez la vue d’ensemble des modèles CLI pour développeurs Azure.

Échantillon

Voici un exemple générique de azure.yaml fichier pour un azd modèle. Pour obtenir un exemple réel, consultez le azure.yamlmodèle Mongo ToDo NodeJs :

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

Propriétés de niveau supérieur

Nom de l’élément Obligatoire Type Description
name Y corde Nom de l'application. Seules les lettres minuscules, les chiffres et les traits d’union (-) sont autorisés. Le nom doit commencer et se terminer par une lettre ou un chiffre.
resourceGroup N corde Nom du groupe de ressources Azure. Lorsqu’il est spécifié, remplace le nom du groupe de ressources utilisé pour l’approvisionnement d’infrastructure. Prend en charge la substitution de variable d’environnement.
metadata N objet Métadonnées relatives au modèle d’application.
infra N objet Fournit une configuration supplémentaire pour l’approvisionnement d’infrastructure Azure.
services N objet Définition des services qui composent l’application.
resources N objet Définition des ressources Azure utilisées par l’application.
pipeline N objet Définition du pipeline d’intégration continue.
hooks N objet Crochets au niveau de la commande pour azd les commandes.
requiredVersions N objet Fournit une configuration supplémentaire pour les versions azd et extensions requises.
state N objet Fournit une configuration supplémentaire pour la gestion de l’état.
platform N objet Fournit une configuration supplémentaire pour les fonctionnalités spécifiques à la plateforme, telles que le Centre de développement Azure.
workflows N objet Fournit une configuration supplémentaire pour les flux de travail tels que le comportement de azd up substitution.
cloud N objet Fournit une configuration supplémentaire pour le déploiement sur des clouds souverains. Le cloud par défaut est AzureCloud.

name

(chaîne, obligatoire) Nom de l’application. Seules les lettres minuscules, les chiffres et les traits d’union (-) sont autorisés. Le nom doit commencer et se terminer par une lettre ou un chiffre. Longueur minimale : 2 caractères.

name: my-app

resourceGroup

(chaîne) Nom du groupe de ressources Azure. Lorsqu’il est spécifié, remplace le nom du groupe de ressources utilisé pour l’approvisionnement d’infrastructure. Prend en charge la substitution de variable d’environnement. Doit être compris entre 3 et 64 caractères.

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

metadata

(objet) Métadonnées relatives au modèle d’application.

Propriété Obligatoire Type Description
template N corde Identificateur du modèle à partir duquel l’application a été créée.
metadata:
  template: todo-nodejs-mongo@0.0.1-beta

infra

(objet) Fournit une configuration supplémentaire pour l’approvisionnement d’infrastructure Azure.

Propriété Obligatoire Type Description
provider N corde Fournisseur d’approvisionnement d’infrastructure utilisé pour approvisionner les ressources Azure pour l’application. Par défaut : bicep. Valeurs autorisées : bicep, terraform.
path N corde Chemin d’accès relatif du dossier aux modèles d’approvisionnement Azure pour le fournisseur spécifié. Par défaut : infra.
module N corde Nom du module par défaut dans les modèles d’approvisionnement Azure. Par défaut : main.
layers N tableau Couches pour l’approvisionnement d’infrastructure Azure. Voir infra.layers.

Note

Quand layers elle est spécifiée avec au moins un élément, les path propriétés ne module peuvent pas être utilisées. Utilisez plutôt des valeurs spécifiques path à module la couche.

infra.layers

(tableau d’objets) Définit des couches d’approvisionnement pour l’infrastructure Azure. Chaque couche représente une unité indépendante d’approvisionnement.

Propriété Obligatoire Type Description
name Y corde Nom de la couche d’approvisionnement.
path Y corde Chemin d’accès relatif du dossier aux modèles d’approvisionnement Azure pour le fournisseur spécifié.
module N corde Nom du module d’approvisionnement Azure utilisé lors de l’approvisionnement de ressources. Par défaut : main.
hooks N objet Crochets de couche d’approvisionnement. Prend en charge preprovision et postprovision crochets. Lorsque vous spécifiez des chemins d’accès, ils doivent être relatifs au chemin de couche. Voir définition de hook.
infra:
  provider: bicep
  layers:
    - name: core
      path: ./infra/core
    - name: services
      path: ./infra/services
      hooks:
        postprovision:
          shell: sh
          run: ./scripts/post-provision.sh

Terraform en tant qu’exemple de fournisseur IaC

Pour utiliser Terraform au lieu de Bicep, définissez la valeur providerterraform. Pour plus d’informations, consultez Utiliser Terraform comme fournisseur 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

(objet) Définition des services qui composent l’application. Chaque clé est un nom de service et la valeur est un objet de configuration de service.

Propriétés du service

Propriété Obligatoire Type Description
host Y corde Type de ressource Azure utilisée pour l’implémentation de service. Consultez types d’hôtes.
project Conditional corde Chemin d’accès au répertoire de code source du service. Obligatoire pour la plupart des types d’hôtes.
image Conditional corde Image source à utiliser pour l’image conteneur au lieu de générer à partir de la source. Prend en charge la substitution de variable d’environnement. Valide uniquement pour l’hôte containerapp .
language N corde Langage d’implémentation de service. Valeurs autorisées : dotnet, csharp, fsharp, py, python, js, ts, java, . docker
module N corde Chemin du module d’infrastructure utilisé pour déployer le service par rapport au dossier infra racine. Si elle est omise, l’interface CLI suppose que le nom du module est identique au nom du service.
dist N corde Chemin relatif des artefacts de déploiement de service.
resourceName N corde Nom de la ressource Azure qui implémente le service. Par défaut, l’interface CLI découvre la ressource Azure avec une balise azd-service-name définie sur le nom du service actuel. Prend en charge la substitution de variable d’environnement.
resourceGroup N corde Nom du groupe de ressources Azure qui contient la ressource. Quand elle est spécifiée, l’interface CLI recherche la ressource Azure dans le groupe de ressources spécifié. Prend en charge la substitution de variable d’environnement.
remoteBuild N booléen Indique s’il faut utiliser la build distante pour le déploiement d’applications de fonction. Valide uniquement quand host est function. Lorsque la valeur est définie true, le package de déploiement est généré à distance à l’aide d’Oryx. Valeur par défaut pour les true applications de fonction JavaScript, TypeScript et Python.
docker N objet Configuration de Docker. Applicable uniquement aux hôtes basés sur un conteneur. Voir docker.
k8s N objet Options de configuration AKS. Valide uniquement quand host est aks. Voir k8s.
config N objet Options de configuration supplémentaires pour le service.
uses N tableau Liste des noms de service et des noms de ressources dont dépend ce service.
env N objet Mappage des noms de variables d’environnement aux valeurs. Prend en charge la substitution de variable d’environnement.
apiVersion N corde Version de l’API du fournisseur de ressources pour les déploiements. Valide uniquement quand host est containerapp.
hooks N objet Crochets de niveau de service. Consultez les hooks de service.

Conseil / Astuce

Consultez les exemples de service pour obtenir des exemples YAML complets de différentes configurations de service.

Types d’hôtes

La host propriété détermine le type de ressource Azure utilisé pour l’implémentation de service et les contrôles qui sont valides.

Valeur de l’hôte Description Exige project Soutient image Soutient docker Soutient k8s Soutient env Soutient apiVersion
appservice Azure App Service Y N N N N N
containerapp Azure Container Apps (Applications de Conteneur Azure) project ou image (pas les deux) Y Y N Y Y
function Azure Functions Y N N N N N
staticwebapp Azure Static Web Apps (Applications Web statiques Azure) Y N N N N N
springapp Azure Spring Apps Y N N N N N
aks Azure Kubernetes Service N N Y Y N N
ai.endpoint Point de terminaison en ligne Azure AI Y N Y N N N
azure.ai.agent Agent d'IA Azure Y N Y N N N

Note

springapp la prise en charge nécessite l’inscription aux fonctionnalités alpha. Pour plus d’informations, consultez fonctionnalités Alpha.

Note

Quand host c’est containerapp, vous devez fournir l’un ou l’autre image , projectmais pas les deux. Si image elle est définie, le conteneur est déployé à partir de l’image spécifiée. Si project elle est définie, l’image conteneur est générée à partir de la source.

ai.endpoint Config

(objet, obligatoire quand host c’est ai.endpoint) Fournit une configuration supplémentaire pour le déploiement de points de terminaison en ligne Azure AI.

Propriété Obligatoire Type Description
workspace N corde Nom de l’espace de travail du projet AI Studio. En cas d’omission, azd utilise la valeur spécifiée dans la variable d’environnement AZUREAI_PROJECT_NAME . Prend en charge la substitution de variable d’environnement.
flow N objet Configuration du flux d’invite Azure AI Studio. En cas d’omission, un flux d’invite n’est pas créé. Consultez la configuration du composant IA.
environment N objet Configuration de l’environnement personnalisé Azure AI Studio. En cas d’omission, un environnement personnalisé n’est pas créé. Consultez la configuration du composant IA.
model N objet Configuration du modèle Azure AI Studio. En cas d’omission, un modèle n’est pas créé. Consultez la configuration du composant IA.
deployment Y objet Configuration du déploiement de point de terminaison en ligne Azure AI Studio. Un nouveau déploiement de point de terminaison en ligne est créé et le trafic est automatiquement déplacé vers le nouveau déploiement à la fin. Consultez la configuration du déploiement d’IA.

Note

Quand host c’est ai.endpoint, les deux project et config sont requis. Consultez ai.endpoint la configuration des propriétés de configuration requises.

Configuration des composants IA
Propriété Obligatoire Type Description
name N corde Nom du composant IA. En cas d’omission, azd génère un nom en fonction du type de composant et du nom du service. Prend en charge la substitution de variable d’environnement.
path Y corde Chemin d’accès au fichier de configuration du composant IA ou au code source.
overrides N objet Carte des paires clé-valeur utilisées pour remplacer la configuration du composant IA. Prend en charge la substitution de variable d’environnement.
Configuration du déploiement d’IA

Hérite de toutes les propriétés de la configuration du composant IA, ainsi que :

Propriété Obligatoire Type Description
environment N objet Carte des paires clé/valeur à définir en tant que variables d’environnement pour le déploiement. Les valeurs prennent en charge la substitution de variables de système d’exploitation et azd d’environnement.
services:
  myendpoint:
    project: ./src/endpoint
    host: ai.endpoint
    config:
      workspace: my-ai-project
      deployment:
        path: ./deployment
        environment:
          MODEL_NAME: ${AZURE_OPENAI_MODEL}

docker

(objet) Configuration Docker pour un service. Applicable uniquement aux hôtes qui prennent en charge les conteneurs (containerapp, aks, ai.endpoint, azure.ai.agent).

Propriété Obligatoire Type Description
path N corde Chemin d’accès au fichier Dockerfile, par rapport à votre service. Par défaut : ./Dockerfile.
context N corde Contexte de build Docker. Quand elle est spécifiée, remplace le contexte par défaut. Par défaut : ..
platform N corde Cible de la plateforme. Par défaut : amd64.
registry N corde Registre de conteneurs vers lequel envoyer (push) l’image. S’il est omis, la valeur par défaut de la variable d’environnement AZURE_CONTAINER_REGISTRY_ENDPOINT . Prend en charge la substitution de variable d’environnement.
image N corde Nom appliqué à l’image conteneur générée. S’il est omis, la valeur par défaut est {appName}/{serviceName}-{environmentName}. Prend en charge la substitution de variable d’environnement.
tag N corde Balise appliquée à l’image conteneur générée. S’il est omis, la valeur par défaut est azd-deploy-{unix time (seconds)}. Prend en charge la substitution de variable d’environnement.
buildArgs N tableau de chaînes de caractères Générer des arguments à passer à la commande docker build.
network N corde Mode de mise en réseau pour les instructions RUN pendant la build Docker. Passé en tant que --network build Docker. Par exemple, utilisez host pour autoriser le conteneur de build à accéder au réseau hôte.
remoteBuild N booléen Indique s’il faut générer l’image à distance. Si la valeur est définie true, l’image est générée à distance à l’aide de la fonctionnalité de build distante Azure Container Registry. Si la build distante échoue, azd revient automatiquement à générer localement à l’aide de Docker ou Podman, le cas échéant.

k8s

(objet) Options de configuration d’Azure Kubernetes Service (AKS). Valide uniquement quand host est aks.

Propriété Obligatoire Type Description
deploymentPath N corde Chemin relatif du chemin d’accès du service aux manifestes de déploiement k8s. Par défaut : manifests.
namespace N corde Espace de noms k8s des ressources déployées. Lorsqu’il est spécifié, un nouvel espace de noms k8s est créé s’il n’existe pas déjà. Valeur par défaut : nom du projet.
deployment N objet Configuration du déploiement k8s. Consultez la configuration du déploiement.
service N objet Configuration du service k8s. Consultez la configuration du service.
ingress N objet Configuration d’entrée k8s. Consultez la configuration d’entrée.
helm N objet Configuration helm. Consultez la configuration Helm.
kustomize N objet Configuration kustomize. Consultez la configuration Kustomize.
Configuration du déploiement
Propriété Obligatoire Type Description
name N corde Nom de la ressource de déploiement k8s à utiliser pendant le déploiement. Si ce n’est pas le cas, recherche une ressource de déploiement dans le même espace de noms qui contient le nom du service. Valeur par défaut : nom du service.
Configuration du service
Propriété Obligatoire Type Description
name N corde Nom de la ressource de service k8s à utiliser comme point de terminaison de service par défaut. Si ce n’est pas défini, recherche une ressource de service dans le même espace de noms que celui qui contient le nom du service. Valeur par défaut : nom du service.
Configuration d’entrée
Propriété Obligatoire Type Description
name N corde Nom de la ressource d’entrée k8s à utiliser comme point de terminaison de service par défaut. Si ce n’est pas défini, recherche une ressource d’entrée dans le même espace de noms que celui qui contient le nom du service. Valeur par défaut : nom du service.
relativePath N corde Chemin d’accès relatif au service à partir de la racine de votre contrôleur d’entrée. Quand elle est définie, elle est ajoutée à la racine de votre chemin de ressource d’entrée.
Configuration Helm
Propriété Obligatoire Type Description
repositories N tableau Référentiels Helm à ajouter.
releases N tableau Les versions helm à installer.

repositories éléments de tableau :

Propriété Obligatoire Type Description
name Y corde Nom du référentiel Helm.
url Y corde URL du référentiel Helm.

releases éléments de tableau :

Propriété Obligatoire Type Description
name Y corde Nom de la version helm.
chart Y corde Nom du graphique Helm.
version N corde Version du graphique Helm.
namespace N corde Espace de noms k8s pour installer le graphique Helm. La valeur par défaut est l’espace de noms du service.
values N corde Chemin relatif du service à un values.yaml passage au graphique Helm.
Configuration Kustomize
Propriété Obligatoire Type Description
dir N corde Chemin d’accès relatif au répertoire kustomize. Prend en charge la substitution de variable d’environnement.
edits N tableau de chaînes de caractères Les modifications kustomize à appliquer avant le déploiement. Prend en charge la substitution de variable d’environnement.
env N objet Paires clé/valeur d’environnement utilisées pour générer un .env fichier dans le répertoire kustomize. Les valeurs prennent en charge la substitution de variable d’environnement.

Crochets de service

Les hooks de niveau de service s’exécutent pendant les événements de cycle de vie du service. Les hooks doivent correspondre aux noms d’événements de service précédés pre ou post. Lorsque vous spécifiez des chemins d’accès, ils doivent être relatifs au chemin du service. Pour plus d’informations, consultez Personnaliser vos flux de travail Azure Developer CLI à l’aide de commandes et de hooks d’événements.

Crochets de service pris en charge : prerestore, , , prepublishpostrestorepredeploypostpublishpostbuildprebuildprepackagepostpackage. postdeploy

Chaque hook utilise le format de définition de hook .

Exemples de service

Applications conteneur avec les options 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
Container Apps à partir d’une image prédéfinie
services:
  api:
    image: myregistry.azurecr.io/myapp:latest
    host: containerapp
AKS avec des hooks de niveau de service
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

(objet) Définition des ressources Azure utilisées par l’application. Chaque clé est un nom de ressource et la valeur est un objet de configuration de ressource. Les ressources peuvent être référencées par les services via la uses propriété.

Propriétés de ressources courantes

Propriété Obligatoire Type Description
type Y corde Type de ressource. Consultez les types de ressources.
uses N tableau D’autres ressources dont dépend cette ressource.
existing N booléen Lorsqu’elle est définie truesur , cette ressource n’est pas créée et est utilisée à des fins de référencement. Par défaut : false.

Conseil / Astuce

Consultez l’exemple Ressources pour obtenir un exemple YAML complet combinant plusieurs types de ressources.

Types de ressource

La type propriété détermine le type de ressource Azure et contrôle les propriétés supplémentaires disponibles.

Valeur du type Description Propriétés supplémentaires
host.appservice Application Web Azure App Service Voir host.appservice les propriétés.
host.containerapp Application conteneur basée sur Docker Voir host.containerapp les propriétés.
ai.openai.model Un modèle IA déployé et prêt à l’emploi Voir ai.openai.model les propriétés.
ai.project Un projet Microsoft Foundry avec des modèles Voir ai.project les propriétés.
ai.search Recherche d’IA Azure Voir ai.search les propriétés.
db.postgres Base de données Azure pour PostgreSQL Aucune propriété supplémentaire.
db.mysql Base de données Azure pour MySQL Aucune propriété supplémentaire.
db.redis Cache Azure pour Redis Aucune propriété supplémentaire.
db.mongo Azure Cosmos DB pour MongoDB Aucune propriété supplémentaire.
db.cosmos Azure Cosmos DB pour NoSQL Voir db.cosmos les propriétés.
messaging.eventhubs Espace de noms Azure Event Hubs Voir messaging.eventhubs les propriétés.
messaging.servicebus espace de noms Azure Service Bus Voir messaging.servicebus les propriétés.
storage Compte de stockage Azure Voir storage les propriétés.
keyvault Azure Key Vault Voir keyvault les propriétés.

propriétés host.appservice

Propriété Obligatoire Type Description
port N entier Port sur lequel l’application web écoute. Par défaut : 80.
runtime Y objet Configuration du runtime de langage. Voir ci-dessous.
env N tableau Variables d'environnement. Chaque élément a name (obligatoire), valueet secret les propriétés. Prend en charge la substitution de variable d’environnement.
startupCommand N corde Commande de démarrage qui s’exécute dans le cadre du démarrage de l’application web.
uses N tableau de chaînes de caractères Autres ressources utilisées par cette ressource.

runtime Objet:

Propriété Obligatoire Type Description
stack Y corde Pile du runtime de langage. Valeurs autorisées : node, python.
version Y corde Version du runtime de langage. Le format varie selon la pile (par exemple, 22-lts pour Node, 3.13 pour Python).
resources:
  web:
    type: host.appservice
    port: 8080
    runtime:
      stack: node
      version: 22-lts
    uses:
      - db

propriétés host.containerapp

Propriété Obligatoire Type Description
port N entier Port sur lequel l’application conteneur écoute. Par défaut : 80.
env N tableau Variables d'environnement. Chaque élément a name (obligatoire), valueet secret les propriétés. Prend en charge la substitution de variable d’environnement.
uses N tableau de chaînes de caractères Autres ressources utilisées par cette ressource.

propriétés ai.openai.model

Propriété Obligatoire Type Description
model Conditional objet Modèle IA sous-jacent. Obligatoire quand existing est false.
existing N booléen Lorsqu’elle est définie truesur , cette ressource n’est pas créée et est utilisée à des fins de référencement. Par défaut : false.

model Objet:

Propriété Obligatoire Type Description
name Y corde Nom du modèle IA.
version Y corde Version du modèle IA.
resources:
  chatModel:
    type: ai.openai.model
    model:
      name: gpt-4o
      version: "2024-08-06"

propriétés ai.project

Propriété Obligatoire Type Description
models N tableau Modèles IA à déployer dans le cadre du projet IA.
existing N booléen Lorsqu’elle est définie truesur , cette ressource n’est pas créée et est utilisée à des fins de référencement. Par défaut : false.

models éléments de tableau :

Propriété Obligatoire Type Description
name Y corde Nom du modèle IA.
version Y corde Version du modèle IA.
format Y corde Format du modèle IA (par exemple, Microsoft, OpenAI).
sku Y objet Configuration de la référence SKU pour le modèle IA.

sku Objet:

Propriété Obligatoire Type Description
name Y corde Nom de la référence SKU (par exemple, GlobalStandard).
usageName Y corde Nom d’utilisation de la référence SKU à des fins de facturation (par exemple, OpenAI.GlobalStandard.gpt-4o-mini).
capacity Y entier Capacité de la référence SKU.

propriétés ai.search

Propriété Obligatoire Type Description
existing N booléen Lorsqu’elle est définie truesur , cette ressource n’est pas créée et est utilisée à des fins de référencement. Par défaut : false.

propriétés db.cosmos

Propriété Obligatoire Type Description
containers N tableau Conteneurs pour stocker des données. Chaque conteneur stocke une collection d’éléments.

containers éléments de tableau :

Propriété Obligatoire Type Description
name Y corde nom du conteneur.
partitionKeys Y tableau Clé(s) de partition utilisée pour distribuer des données entre des partitions. 3 clés maximales. Par défaut : /id.

propriétés messaging.eventhubs

Propriété Obligatoire Type Description
hubs N tableau de chaînes de caractères Noms de hubs à créer dans l’espace de noms Event Hubs.
existing N booléen Lorsqu’elle est définie truesur , cette ressource n’est pas créée et est utilisée à des fins de référencement. Par défaut : false.

propriétés messaging.servicebus

Propriété Obligatoire Type Description
queues N tableau de chaînes de caractères Noms de file d’attente à créer dans l’espace de noms Service Bus.
topics N tableau de chaînes de caractères Noms de rubriques à créer dans l’espace de noms Service Bus.
existing N booléen Lorsqu’elle est définie truesur , cette ressource n’est pas créée et est utilisée à des fins de référencement. Par défaut : false.

propriétés storage

Propriété Obligatoire Type Description
containers N tableau de chaînes de caractères Noms de conteneur de compte de stockage Azure.
existing N booléen Lorsqu’elle est définie truesur , cette ressource n’est pas créée et est utilisée à des fins de référencement. Par défaut : false.

propriétés keyvault

Propriété Obligatoire Type Description
existing N booléen Lorsqu’elle est définie truesur , cette ressource n’est pas créée et est utilisée à des fins de référencement. Par défaut : false.

Exemple de ressources

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

(objet) Définition du pipeline d’intégration continue.

Propriété Obligatoire Type Description
provider N corde Fournisseur de pipeline à utiliser pour l’intégration continue. Par défaut : github. Valeurs autorisées : github, azdo.
variables N tableau de chaînes de caractères Liste des variables d’environnement azd à utiliser dans le pipeline en tant que variables.
secrets N tableau de chaînes de caractères Liste des variables d’environnement azd à utiliser dans le pipeline en tant que secrets.
pipeline:
  provider: azdo
  variables:
    - CUSTOM_SETTING
  secrets:
    - API_KEY

hooks

(objet) Crochets au niveau de la commande. Les hooks doivent correspondre azd noms de commandes précédés de pre ou de post en fonction du moment où le script doit s’exécuter. Lorsque vous spécifiez des chemins d’accès, ils doivent être relatifs au chemin du projet. Pour plus d’informations, consultez Personnaliser vos flux de travail Azure Developer CLI à l’aide de commandes et de hooks d’événements.

Crochets de commande pris en charge : preprovision, , , predownprerestoreprepublishpostrestorepostdeploypredeploypostpublishpostpackageprepackagepostuppreuppostinfradeletepostinfracreatepostdownpostprovisionpreinfracreatepreinfradelete.

Chaque hook utilise le format de définition de hook .

Conseil / Astuce

Consultez les exemples de hooks pour obtenir des exemples YAML complets, notamment des hooks spécifiques à la plateforme, des exécuteurs typés et plusieurs hooks par événement.

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

Définition de hook

Un hook peut être un objet de crochet unique ou un tableau d’objets de crochet. Chaque objet hook a les propriétés suivantes :

Propriété Obligatoire Type Description
run Conditional corde Script inline ou chemin relatif de votre script. Obligatoire lors de la shellspécification , , kinddir, interactive, continueOnError, secretsou config. Lors de la spécification d’un script inline, vous devez également spécifier l’utilisation shell . L’interpréteur de commandes est automatiquement déduit lors de l’utilisation des chemins d’accès aux fichiers.
shell N corde Type d’interpréteur de commandes pour exécuter des scripts. Par défaut : sh. Valeurs autorisées : sh, pwsh.
kind N corde Type d’exécuteur pour le script de hook. En cas d’omission, le type est détecté automatiquement à partir de l’extension de fichier du run chemin d’accès (par exemple, .py devient python, .ps1 devient pwsh). Valeurs autorisées : sh, pwsh, js, ts, python, dotnet.
dir N corde Répertoire de travail pour l’exécution du hook. Utilisé comme racine du projet pour l’installation des dépendances et comme répertoire de travail lors de l’exécution du script. Les chemins relatifs sont résolus à partir de la racine du projet ou du service. En cas d’omission, la valeur par défaut est le répertoire contenant le fichier de script.
continueOnError N booléen Indique si une erreur de script arrête la azd commande. Par défaut : false.
interactive N booléen Indique si le script s’exécute en mode interactif, liaison à stdin, stdoutet stderr de la console en cours d’exécution. Par défaut : false.
windows N objet Lorsqu’elle est spécifiée, remplace la configuration du hook lorsqu’elle est exécutée dans des environnements Windows. Utilise le même format d’objet de crochet.
posix N objet Lorsqu’elle est spécifiée, remplace la configuration du hook lorsqu’elle est exécutée dans des environnements POSIX (Linux et macOS). Utilise le même format d’objet de crochet.
secrets N objet Carte des variables d’environnement azd pour raccorder des secrets. Si une variable a été définie en tant que secret dans l’environnement, la valeur secrète est transmise au hook.
config N objet Configuration spécifique à l’exécuteur. Les propriétés disponibles dépendent de la kind valeur. Consultez la configuration de l’exécuteur hook.

Note

Lorsque les deux windows et sont spécifiés, les runpropriétés , , interactivedirshellkindcontinueOnErrorsecretset config les propriétés ne peuvent pas être utilisées au niveau supérieur.posix Utilisez plutôt les objets spécifiques à la plateforme.

Configuration de l’exécuteur de hook

La config propriété accepte différentes propriétés en fonction de la kind valeur.

Configuration JavaScript et TypeScript (js, ts)

Propriété Obligatoire Type Description
packageManager N corde Gestionnaire de package à utiliser pour l’installation des dépendances. Remplace la détection automatique des fichiers de verrouillage. Valeurs autorisées : npm, pnpm, yarn.

Configuration Python

Propriété Obligatoire Type Description
virtualEnvName N corde Nom du répertoire de l’environnement virtuel Python. Par défaut, la détection automatique (.venv, venv) ou {baseName}_env.

Configuration .NET (dotnet)

Propriété Obligatoire Type Description
configuration N corde Configuration MSBuild pour la génération du script de hook (par exemple, Debug, Release).
framework N corde Moniker de framework cible pour la génération et l’exécution du script de hook (par exemple, net8.0, net10.0).

Shell (sh, pwsh) config

Les exécuteurs shell ne prennent actuellement pas en charge config les propriétés.

Exemples de crochets

Crochets spécifiques à la plateforme

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

Crochet Python avec un type

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

Crochets multiples pour un seul événement

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

requiredVersions

(objet) Fournit une configuration supplémentaire pour les versions azd et extensions requises.

Propriété Obligatoire Type Description
azd N corde Plage de versions prises en charge de azd pour ce projet. Si la version d’une version est en dehors de azd cette plage, le projet ne parvient pas à se charger. Prend en charge la syntaxe de plage semver.
extensions N objet Carte des extensions et contraintes de version requises pour ce projet. Prend en charge les contraintes semver. Si la version est omise, la dernière version est installée.
requiredVersions:
  azd: ">= 0.6.0-beta.3"
  extensions:
    azure.ai.agents: ">=1.0.0"
    my-extension: latest

state

(objet) Fournit une configuration supplémentaire pour la gestion de l’état.

Propriété Obligatoire Type Description
remote N objet Fournit une configuration supplémentaire pour la gestion à distance de l’état. Voir state.remote.

state.remote

Propriété Obligatoire Type Description
backend Y corde Type principal d’état distant. Par défaut : AzureBlobStorage. Valeurs autorisées : AzureBlobStorage.
config Conditional objet Configuration spécifique au back-end. Obligatoire quand backend est AzureBlobStorage. Consultez la configuration du Stockage Blob Azure.

Configuration du Stockage Blob Azure

Propriété Obligatoire Type Description
accountName Y corde Le nom du compte Azure Storage.
containerName N corde Nom du conteneur Stockage Azure. La valeur par défaut est le nom du projet s’il n’est pas spécifié.
endpoint N corde Point de terminaison stockage Azure. Par défaut : blob.core.windows.net.
state:
  remote:
    backend: AzureBlobStorage
    config:
      accountName: mystorageaccount
      containerName: azd-state

platform

(objet) Fournit une configuration supplémentaire pour les fonctionnalités spécifiques à la plateforme, telles que le Centre de développement Azure.

Propriété Obligatoire Type Description
type Y corde Type de plateforme. Valeurs autorisées : devcenter.
config N objet Configuration spécifique à la plateforme. Consultez la configuration du Centre de développement.

Configuration du Centre de développement

Disponible quand type est devcenter:

Propriété Obligatoire Type Description
name N corde Nom du Centre de développement Azure. Utilisé comme centre de développement par défaut pour ce projet.
project N corde Nom du projet du Centre de développement Azure.
catalog N corde Nom du catalogue du Centre de développement Azure.
environmentDefinition N corde Nom de la définition de l’environnement de catalogue du Centre de développement.
environmentType N corde Type d’environnement de projet du Centre de développement utilisé pour l’environnement de déploiement.
platform:
  type: devcenter
  config:
    name: my-devcenter
    project: my-project
    catalog: my-catalog
    environmentDefinition: my-env-def
    environmentType: dev

workflows

(objet) Fournit une configuration supplémentaire pour les flux de travail tels que le comportement de azd up substitution.

Propriété Obligatoire Type Description
up N objet ou tableau Lorsqu’il est spécifié, remplace le comportement par défaut du azd up flux de travail.

Étapes de workflow

Le up flux de travail accepte un steps tableau (ou peut être spécifié directement en tant que tableau). Chaque étape exécute une azd commande.

Propriété Obligatoire Type Description
azd Y chaîne ou objet Commande azd à exécuter. Il peut s’agir d’une chaîne (par exemple provision) ou d’un objet avec un args tableau.

Configurer l’ordre des étapes du flux de travail

Le fichier suivant azure.yaml modifie le comportement par défaut de déplacer azd up l’étape azd package après l’étape azd provision . Utilisez cette approche dans les scénarios où vous devez connaître les URL des ressources pendant le processus de génération ou d’empaquetage.

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

cloud

(objet) Fournit une configuration supplémentaire pour le déploiement sur des clouds souverains tels qu’Azure Government. Le cloud par défaut est AzureCloud.

Propriété Obligatoire Type Description
name N corde Nom de l’environnement cloud. Valeurs autorisées : AzureCloud, AzureChinaCloud, AzureUSGovernment.
cloud:
  name: AzureUSGovernment

Demander de l’aide

Pour plus d’informations sur la façon de déposer un bogue, de demander de l’aide ou de proposer une nouvelle fonctionnalité pour Azure Developer CLI, consultez la page résolution des problèmes et de support.

Étapes suivantes