Cli-schemareferens för Azure Developer

Filen azure.yaml är konfigurationsfilen för Azure Developer CLI-projekt (azd). Placera den i roten för projektet för att definiera de tjänster, Azure-resurser, infrastruktur, krokar och CI/CD-pipeline som utgör ditt program. När du kör kommandon som azd up, azd provisioneller azd deploy, läser CLI den här filen för att förstå appens struktur och hur du distribuerar den till Azure.

Den här artikeln är en fullständig referens för azure.yaml-schemat. Information om hur du kommer igång med azd mallar finns i Översikt över CLI-mallar för Azure Developer.

Prov

Följande är ett allmänt exempel på en azure.yaml fil för en azd mall. Ett verkligt exempel finns i azure.yaml från Mongo-mallen 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

Egenskaper på den översta nivån

Elementnamn Krävs Typ Beskrivning
name Y sträng Ansökningsnamnet. Endast gemener, siffror och bindestreck (-) tillåts. Namnet måste börja och sluta med en bokstav eller siffra.
resourceGroup N sträng Namnet på Azure-resursgruppen. När det anges åsidosätter det resursgruppsnamn som används för infrastrukturetablering. Stöder ersättning av miljövariabler.
metadata N objekt Metadata om programmallen.
infra N objekt Tillhandahåller ytterligare konfiguration för etablering av Azure-infrastruktur.
services N objekt Definition av tjänster som ingår i programmet.
resources N objekt Definition av Azure-resurser som används av programmet.
pipeline N objekt Definition av pipeline för kontinuerlig integrering.
hooks N objekt Kommandonivåkrokar för azd kommandon.
requiredVersions N objekt Tillhandahåller ytterligare konfiguration för nödvändiga versioner av azd och tillägg.
state N objekt Tillhandahåller ytterligare konfiguration för tillståndshantering.
platform N objekt Ger ytterligare konfiguration för plattformsspecifika funktioner som Azure Dev Center.
workflows N objekt Tillhandahåller ytterligare konfiguration för arbetsflöden, till exempel åsidosättande azd up beteende.
cloud N objekt Tillhandahåller ytterligare konfiguration för distribution till nationella moln. Standardmolnet är AzureCloud.

name

(sträng, krävs) Programnamnet. Endast gemener, siffror och bindestreck (-) tillåts. Namnet måste börja och sluta med en bokstav eller siffra. Minsta längd: 2 tecken.

name: my-app

resourceGroup

(sträng) Namnet på Azure-resursgruppen. När det anges åsidosätter det resursgruppsnamn som används för infrastrukturetablering. Stöder ersättning av miljövariabler. Måste vara mellan 3 och 64 tecken.

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

metadata

(objekt) Metadata om programmallen.

Fastighet Krävs Typ Beskrivning
template N sträng Identifierare för mallen som programmet skapades från.
metadata:
  template: todo-nodejs-mongo@0.0.1-beta

infra

(objekt) Tillhandahåller ytterligare konfiguration för etablering av Azure-infrastruktur.

Fastighet Krävs Typ Beskrivning
provider N sträng Infrastrukturetableringsprovidern som används för att etablera Azure-resurserna för programmet. Förvald: bicep. Tillåtna värden: bicep, terraform.
path N sträng Den relativa mappsökvägen till Azure-etableringsmallarna för den angivna providern. Förvald: infra.
module N sträng Namnet på standardmodulen i Azure-etableringsmallarna. Förvald: main.
layers N samling Lager för etablering av Azure-infrastruktur. Se även infra.layers.

Note

När layers har angetts med minst ett objekt path kan egenskaperna och module inte användas. Använd lagerspecifika path värden i module stället.

infra.layers

(matris med objekt) Definierar etableringslager för Azure-infrastruktur. Varje lager representerar en oberoende etableringsenhet.

Fastighet Krävs Typ Beskrivning
name Y sträng Namnet på etableringsskiktet.
path Y sträng Den relativa mappsökvägen till Azure-etableringsmallarna för den angivna providern.
module N sträng Namnet på Azure-etableringsmodulen som används vid etablering av resurser. Förvald: main.
hooks N objekt Etableringslagerkrokar. Stöd preprovision och postprovision krokar. När du anger sökvägar bör de vara relativa till lagersökvägen. Se Hook-definition.
infra:
  provider: bicep
  layers:
    - name: core
      path: ./infra/core
    - name: services
      path: ./infra/services
      hooks:
        postprovision:
          shell: sh
          run: ./scripts/post-provision.sh

Exempel på Terraform som IaC-provider

Om du vill använda Terraform i stället för Bicep anger du provider till terraform. Mer information finns i Använda Terraform som IaC-provider.

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

(objekt) Definition av tjänster som ingår i programmet. Varje nyckel är ett tjänstnamn och värdet är ett tjänstkonfigurationsobjekt.

Tjänstegenskaper

Fastighet Krävs Typ Beskrivning
host Y sträng Typen av Azure-resurs som används för tjänstimplementering. Se Värdtyper.
project Conditional sträng Sökväg till tjänstens källkodskatalog. Krävs för de flesta värdtyper.
image Conditional sträng Källavbildningen som ska användas för containeravbildningen i stället för att skapa från källan. Stöder ersättning av miljövariabler. Endast giltigt för containerapp värden.
language N sträng Språk för tjänstimplementering. Tillåtna värden: dotnet, csharp, , fsharppy, , pythonjs, tsjavadocker.
module N sträng Sökväg till infrastrukturmodulen som används för att distribuera tjänsten i förhållande till rot-infra-mappen. Om det utelämnas förutsätter CLI att modulnamnet är samma som tjänstnamnet.
dist N sträng Relativ sökväg till tjänstdistributionsartefakter.
resourceName N sträng Namnet på den Azure-resurs som implementerar tjänsten. Som standard identifierar CLI Azure-resursen med taggen azd-service-name inställd på den aktuella tjänstens namn. Stöder ersättning av miljövariabler.
resourceGroup N sträng Namnet på den Azure-resursgrupp som innehåller resursen. När det anges hittar CLI Azure-resursen i den angivna resursgruppen. Stöder ersättning av miljövariabler.
remoteBuild N boolean Om du vill använda fjärrversion för distribution av funktionsappar. Endast giltigt när host är function. När det är inställt truepå skapas distributionspaketet via fjärranslutning med Oryx. Standardvärdet är true för JavaScript-, TypeScript- och Python-funktionsappar.
docker N objekt Docker-konfiguration. Gäller endast för containerbaserade värdar. Se även docker.
k8s N objekt AKS-konfigurationsalternativ. Endast giltigt när host är aks. Se även k8s.
config N objekt Extra konfigurationsalternativ för tjänsten.
uses N samling Lista över tjänstnamn och resursnamn som tjänsten är beroende av.
env N objekt En karta över miljövariabelnamn till värden. Stöder ersättning av miljövariabler.
apiVersion N sträng Api-version för resursprovider för distributioner. Endast giltigt när host är containerapp.
hooks N objekt Servicenivåkrokar. Se Tjänstkrokar.

Tip

Se Tjänstexempel för fullständiga YAML-exempel på olika tjänstkonfigurationer.

Värdtyper

Egenskapen host avgör vilken typ av Azure-resurs som används för tjänstimplementering och kontrollerar vilka andra egenskaper som är giltiga.

Värdvärde Beskrivning Kräver project Stöder image Stöder docker Stöder k8s Stöder env Stöder apiVersion
appservice Azure App-tjänst Y N N N N N
containerapp Azure Container-applikationer project eller image (inte båda) Y Y N Y Y
function Azure Functions Y N N N N N
staticwebapp Azure Static Web Apps (statiska webbappar) 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 Azure AI-slutpunkt online Y N Y N N N
azure.ai.agent Azure AI-Agent Y N Y N N N

Note

springapp support kräver att du anmäler dig till alfafunktioner. Mer information finns i Alpha-funktioner.

Note

När host är containerappmåste du ange antingen image eller project, men inte båda. Om image har angetts distribueras containern från den angivna avbildningen. Om project har angetts skapas containeravbildningen från källan.

ai.endpoint Config

(objekt, krävs när host är ai.endpoint) Tillhandahåller ytterligare konfiguration för azure AI-onlineslutpunktsdistribution.

Fastighet Krävs Typ Beskrivning
workspace N sträng Namnet på AI Studio-projektarbetsytan. När det utelämnas azd använder du det värde som anges i AZUREAI_PROJECT_NAME miljövariabeln. Stöder ersättning av miljövariabler.
flow N objekt Azure AI Studio Prompt Flow-konfigurationen. När det utelämnas skapas inte ett promptflöde. Se AI-komponentkonfiguration.
environment N objekt Konfiguration av anpassad Azure AI Studio-miljö. När den utelämnas skapas inte en anpassad miljö. Se AI-komponentkonfiguration.
model N objekt Azure AI Studio-modellkonfigurationen. När den utelämnas skapas inte en modell. Se AI-komponentkonfiguration.
deployment Y objekt Distributionskonfigurationen för Azure AI Studio-slutpunkt online. En ny distribution av onlineslutpunkter skapas och trafiken flyttas automatiskt till den nya distributionen när den har slutförts. Se KONFIGURATION av AI-distribution.

Note

När host är ai.endpoint, både project och config krävs. Se ai.endpoint konfigurationsegenskaperna .

AI-komponentkonfiguration
Fastighet Krävs Typ Beskrivning
name N sträng Namnet på AI-komponenten. När det utelämnas azd genererar ett namn baserat på komponenttypen och tjänstnamnet. Stöder ersättning av miljövariabler.
path Y sträng Sökvägen till AI-komponentens konfigurationsfil eller källkod.
overrides N objekt En karta över nyckelvärdepar som används för att åsidosätta AI-komponentkonfigurationen. Stöder ersättning av miljövariabler.
Konfiguration av AI-distribution

Ärver alla egenskaper från AI-komponentkonfigurationen, plus:

Fastighet Krävs Typ Beskrivning
environment N objekt En karta över nyckel/värde-par som ska anges som miljövariabler för distributionen. Värden stöder ersättning av operativsystem och azd miljövariabler.
services:
  myendpoint:
    project: ./src/endpoint
    host: ai.endpoint
    config:
      workspace: my-ai-project
      deployment:
        path: ./deployment
        environment:
          MODEL_NAME: ${AZURE_OPENAI_MODEL}

docker

(objekt) Docker-konfiguration för en tjänst. Gäller endast för värdar som stöder containrar (containerapp, aks, ai.endpoint, azure.ai.agent).

Fastighet Krävs Typ Beskrivning
path N sträng Sökvägen till Dockerfile i förhållande till din tjänst. Förvald: ./Dockerfile.
context N sträng Docker-byggkontexten. När det anges åsidosätter standardkontexten. Förvald: ..
platform N sträng Plattformsmålet. Förvald: amd64.
registry N sträng Containerregistret som avbildningen ska skickas till. Om det utelämnas är värdet AZURE_CONTAINER_REGISTRY_ENDPOINT för miljövariabeln standard. Stöder ersättning av miljövariabler.
image N sträng Namnet som tillämpas på den skapade containeravbildningen. Om det utelämnas är standardvärdet {appName}/{serviceName}-{environmentName}. Stöder ersättning av miljövariabler.
tag N sträng Taggen som tillämpas på den skapade containeravbildningen. Om det utelämnas är standardvärdet azd-deploy-{unix time (seconds)}. Stöder ersättning av miljövariabler.
buildArgs N strängmatris Skapa argument som ska skickas till docker build-kommandot.
network N sträng Nätverksläget för RUN-instruktioner under docker-versionen. --network Skickas som till docker build. Använd till exempel host för att tillåta att byggcontainern får åtkomst till värdnätverket.
remoteBuild N boolean Om avbildningen ska byggas via fjärranslutning. Om värdet trueär inställt på skapas avbildningen via fjärranslutning med hjälp av fjärrversionen av Azure Container Registry. Om fjärrbygget misslyckas återgår azd du automatiskt till att skapa lokalt med Docker eller Podman om det är tillgängligt.

k8s

(objekt) Konfigurationsalternativ för Azure Kubernetes Service (AKS). Endast giltigt när host är aks.

Fastighet Krävs Typ Beskrivning
deploymentPath N sträng Den relativa sökvägen från tjänstsökvägen till distributionsmanifestet för k8s. Förvald: manifests.
namespace N sträng K8s-namnområdet för de distribuerade resurserna. När det anges skapas ett nytt k8s-namnområde om det inte redan finns. Standard: projektnamn.
deployment N objekt Konfiguration av k8s-distribution. Se Distributionskonfiguration.
service N objekt Konfigurationen av k8s-tjänsten. Se Tjänstkonfiguration.
ingress N objekt Ingresskonfigurationen för k8s. Se Ingress-konfiguration.
helm N objekt Helm-konfigurationen. Se Helm-konfiguration.
kustomize N objekt Kustomize-konfigurationen. Se Kustomize-konfiguration.
Distributionskonfiguration
Fastighet Krävs Typ Beskrivning
name N sträng Namnet på den k8s-distributionsresurs som ska användas under distributionen. Om den inte har angetts söker du efter en distributionsresurs i samma namnområde som innehåller tjänstnamnet. Standard: tjänstnamn.
Tjänstkonfiguration
Fastighet Krävs Typ Beskrivning
name N sträng Namnet på den k8s-tjänstresurs som ska användas som standardtjänstslutpunkt. Om den inte har angetts söker du efter en tjänstresurs i samma namnområde som innehåller tjänstnamnet. Standard: tjänstnamn.
Ingresskonfiguration
Fastighet Krävs Typ Beskrivning
name N sträng Namnet på den k8s-ingressresurs som ska användas som standardtjänstslutpunkt. Om den inte har angetts söker du efter en ingressresurs i samma namnområde som innehåller tjänstnamnet. Standard: tjänstnamn.
relativePath N sträng Den relativa sökvägen till tjänsten från roten för ingresskontrollanten. När den har angetts läggs den till i roten för din ingressresurssökväg.
Helm-konfiguration
Fastighet Krävs Typ Beskrivning
repositories N samling De helm-lagringsplatser som ska läggas till.
releases N samling Helm-versionerna som ska installeras.

repositories matrisobjekt:

Fastighet Krävs Typ Beskrivning
name Y sträng Namnet på helm-lagringsplatsen.
url Y sträng URL:en för helm-lagringsplatsen.

releases matrisobjekt:

Fastighet Krävs Typ Beskrivning
name Y sträng Namnet på helm-versionen.
chart Y sträng Namnet på helm-diagrammet.
version N sträng Versionen av helm-diagrammet.
namespace N sträng K8s-namnområdet för att installera helm-diagrammet. Standardvärdet är tjänstnamnområdet.
values N sträng Relativ sökväg från tjänst till en values.yaml för att skicka till helm-diagrammet.
Kustomize-konfiguration
Fastighet Krävs Typ Beskrivning
dir N sträng Den relativa sökvägen till katalogen kustomize. Stöder ersättning av miljövariabler.
edits N strängmatris Kustomize-redigeringarna som ska tillämpas före distributionen. Stöder ersättning av miljövariabler.
env N objekt Miljönyckel/värdepar som används för att generera en .env fil i katalogen kustomize. Värden stöder miljövariabelersättning.

Servicekopplingar

Hookar på tjänstnivå körs under händelser i tjänstens livscykel. Hooks ska matcha tjänsthändelsenamn som är prefixet med pre eller post. När du anger sökvägar bör de vara relativa till tjänstsökvägen. Mer information finns i Anpassa cli-arbetsflöden för Azure Developer med hjälp av kommando- och händelsekrokar.

Tjänstkrokar som stöds: prerestore, postrestore, prebuild, postbuild, prepackage, postpackage, prepublish, postpublish, predeploy, postdeploy.

Varje krok använder hookdefinitionsformatet .

Tjänstexempel

Alternativ för Container Apps med 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 från en fördefinierad avbildning
services:
  api:
    image: myregistry.azurecr.io/myapp:latest
    host: containerapp
AKS med krokar på servicenivå
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

(objekt) Definition av Azure-resurser som används av programmet. Varje nyckel är ett resursnamn och värdet är ett resurskonfigurationsobjekt. Resurser kan refereras av tjänster via egenskapen uses .

Vanliga resursegenskaper

Fastighet Krävs Typ Beskrivning
type Y sträng Typ av resurs. Se Resurstyper.
uses N samling Andra resurser som den här resursen är beroende av.
existing N boolean När den här resursen är inställd truepå skapas den inte och används i stället för referensändamål. Förvald: false.

Tip

Se Exempel på resurser för ett fullständigt YAML-exempel som kombinerar flera resurstyper.

Resurstyper

Egenskapen type avgör vilken typ av Azure-resurs och styr vilka ytterligare egenskaper som är tillgängliga.

Typvärde Beskrivning Ytterligare egenskaper
host.appservice Azure App Service-webbapp Se host.appservice egenskaper.
host.containerapp Docker-baserad containerapp Se host.containerapp egenskaper.
ai.openai.model En distribuerad ai-modell som är redo att användas Se ai.openai.model egenskaper.
ai.project Ett Microsoft Foundry-projekt med modeller Se ai.project egenskaper.
ai.search Azure AI-sökning Se ai.search egenskaper.
db.postgres Azure-databasen för PostgreSQL Inga extra egenskaper.
db.mysql Azure-databas för MySQL Inga extra egenskaper.
db.redis Azure-cache för Redis Inga extra egenskaper.
db.mongo Azure Cosmos DB för MongoDB Inga extra egenskaper.
db.cosmos Azure Cosmos DB för NoSQL Se db.cosmos egenskaper.
messaging.eventhubs Namnområde för Azure Event Hubs Se messaging.eventhubs egenskaper.
messaging.servicebus Azure Service Bus-namnområde Se messaging.servicebus egenskaper.
storage Azure Storage-konto Se storage egenskaper.
keyvault Azure 密钥保管库 Se keyvault egenskaper.

host.appservice egenskaper

Fastighet Krävs Typ Beskrivning
port N integer Port som webbappen lyssnar på. Förvald: 80.
runtime Y objekt Språkkörningskonfigurationen. Se nedan.
env N samling Miljövariabler. Varje objekt har name (krävs), valueoch secret egenskaper. Stöder ersättning av miljövariabler.
startupCommand N sträng Startkommando som körs som en del av start av webbappar.
uses N strängmatris Andra resurser som den här resursen använder.

runtime Objekt:

Fastighet Krävs Typ Beskrivning
stack Y sträng Språkkörningsstacken. Tillåtna värden: node, python.
version Y sträng Språkkörningsversionen. Formatet varierar beroende på stack (till exempel 22-lts för Node för 3.13 Python).
resources:
  web:
    type: host.appservice
    port: 8080
    runtime:
      stack: node
      version: 22-lts
    uses:
      - db

host.containerapp egenskaper

Fastighet Krävs Typ Beskrivning
port N integer Port som containerappen lyssnar på. Förvald: 80.
env N samling Miljövariabler. Varje objekt har name (krävs), valueoch secret egenskaper. Stöder ersättning av miljövariabler.
uses N strängmatris Andra resurser som den här resursen använder.

ai.openai.model egenskaper

Fastighet Krävs Typ Beskrivning
model Conditional objekt Den underliggande AI-modellen. Krävs när existing är false.
existing N boolean När den här resursen är inställd truepå skapas den inte och används i stället för referensändamål. Förvald: false.

model Objekt:

Fastighet Krävs Typ Beskrivning
name Y sträng Namnet på AI-modellen.
version Y sträng Versionen av AI-modellen.
resources:
  chatModel:
    type: ai.openai.model
    model:
      name: gpt-4o
      version: "2024-08-06"

ai.project egenskaper

Fastighet Krävs Typ Beskrivning
models N samling AI-modellerna som ska distribueras som en del av AI-projektet.
existing N boolean När den här resursen är inställd truepå skapas den inte och används i stället för referensändamål. Förvald: false.

models matrisobjekt:

Fastighet Krävs Typ Beskrivning
name Y sträng Namnet på AI-modellen.
version Y sträng Versionen av AI-modellen.
format Y sträng Formatet för AI-modellen (till exempel Microsoft, OpenAI).
sku Y objekt SKU-konfigurationen för AI-modellen.

sku Objekt:

Fastighet Krävs Typ Beskrivning
name Y sträng Namnet på SKU:n (till exempel GlobalStandard).
usageName Y sträng Användningsnamnet för SKU:n för faktureringsändamål (till exempel OpenAI.GlobalStandard.gpt-4o-mini).
capacity Y integer Kapaciteten för SKU:n.

ai.search egenskaper

Fastighet Krävs Typ Beskrivning
existing N boolean När den här resursen är inställd truepå skapas den inte och används i stället för referensändamål. Förvald: false.

db.cosmos egenskaper

Fastighet Krävs Typ Beskrivning
containers N samling Containrar för att lagra data. Varje container lagrar en samling objekt.

containers matrisobjekt:

Fastighet Krävs Typ Beskrivning
name Y sträng Namnet på containern.
partitionKeys Y samling De partitionsnycklar som används för att distribuera data mellan partitioner. Maximalt 3 nycklar. Förvald: /id.

messaging.eventhubs egenskaper

Fastighet Krävs Typ Beskrivning
hubs N strängmatris Hubbnamn som ska skapas i Event Hubs-namnområdet.
existing N boolean När den här resursen är inställd truepå skapas den inte och används i stället för referensändamål. Förvald: false.

messaging.servicebus egenskaper

Fastighet Krävs Typ Beskrivning
queues N strängmatris Könamn som ska skapas i Service Bus-namnområdet.
topics N strängmatris Ämnesnamn som ska skapas i Service Bus-namnområdet.
existing N boolean När den här resursen är inställd truepå skapas den inte och används i stället för referensändamål. Förvald: false.

storage egenskaper

Fastighet Krävs Typ Beskrivning
containers N strängmatris Containernamn för Azure Storage-konto.
existing N boolean När den här resursen är inställd truepå skapas den inte och används i stället för referensändamål. Förvald: false.

keyvault egenskaper

Fastighet Krävs Typ Beskrivning
existing N boolean När den här resursen är inställd truepå skapas den inte och används i stället för referensändamål. Förvald: false.

Exempel på resurser

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

(objekt) Definition av pipeline för kontinuerlig integrering.

Fastighet Krävs Typ Beskrivning
provider N sträng Pipelineprovidern som ska användas för kontinuerlig integrering. Förvald: github. Tillåtna värden: github, azdo.
variables N strängmatris azd Lista över miljövariabler som ska användas i pipelinen som variabler.
secrets N strängmatris azd Lista över miljövariabler som ska användas i pipelinen som hemligheter.
pipeline:
  provider: azdo
  variables:
    - CUSTOM_SETTING
  secrets:
    - API_KEY

hooks

(objekt) Kommandonivåkrokar. Hooks bör matcha azd kommandonamn som är prefix med pre eller post beroende på när skriptet ska köras. När du anger sökvägar bör de vara relativa till projektsökvägen. Mer information finns i Anpassa cli-arbetsflöden för Azure Developer med hjälp av kommando- och händelsekrokar.

Kommandokrokar som stöds: preprovision, postprovision, preinfracreate, postinfracreate, preinfradelete, postinfradelete, predown, postdown, preup, postup, prepackage, , postpackage, prepublish, postpublish, predeploy, postdeploy, prerestore. postrestore

Varje krok använder hookdefinitionsformatet .

Tip

Se Hook-exempel för kompletta YAML-exempel, inklusive plattformsspecifika krokar, typade utförare och flera krokar per händelse.

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

Hook-definition

En krok kan vara ett enda krokobjekt eller en matris med krokobjekt. Varje hook-objekt har följande egenskaper:

Fastighet Krävs Typ Beskrivning
run Conditional sträng Det infogade skriptet eller den relativa sökvägen för skriptet. Krävs när du shellanger , kind, dir, interactive, continueOnError, secretseller config. När du anger ett infogat skript måste du också ange vilken som shell ska användas. Gränssnittet härleds automatiskt när du använder filsökvägar.
shell N sträng Typ av gränssnitt för att köra skript. Förvald: sh. Tillåtna värden: sh, pwsh.
kind N sträng Körtyp för hook-skriptet. När den utelämnas identifieras typen automatiskt från filnamnstillägget run för sökvägen (till exempel .py blir python, .ps1 blir pwsh). Tillåtna värden: sh, pwsh, js, ts, python, dotnet.
dir N sträng Arbetskatalog för hook-körning. Används som projektrot för beroendeinstallation och som arbetskatalog när skriptet körs. Relativa sökvägar matchas från projektet eller tjänstroten. När det utelämnas används som standard den katalog som innehåller skriptfilen.
continueOnError N boolean Om ett skriptfel stoppar azd kommandot. Förvald: false.
interactive N boolean Om skriptet körs i interaktivt läge, bindning till stdin, stdoutoch stderr för den konsol som körs. Förvald: false.
windows N objekt När detta anges åsidosätter du hook-konfigurationen när den körs i Windows-miljöer. Använder samma hook-objektformat.
posix N objekt När detta anges åsidosätter du hook-konfigurationen när den körs i POSIX-miljöer (Linux och macOS). Använder samma hook-objektformat.
secrets N objekt En karta över azd miljövariabler för att koppla hemligheter. Om en variabel angavs som en hemlighet i miljön skickas det hemliga värdet till kroken.
config N objekt Körspecifik konfiguration. Vilka egenskaper som är tillgängliga beror på värdet kind . Se Konfiguration av hook executor.

Note

När både windows och posix anges runkan egenskaperna , shell, kind, dir, interactive, continueOnError, secretsoch config inte användas på den översta nivån. Använd plattformsspecifika objekt i stället.

Konfiguration av hook executor

Egenskapen config accepterar olika egenskaper beroende på värdet kind .

JavaScript- och TypeScript-konfiguration (js, ts)

Fastighet Krävs Typ Beskrivning
packageManager N sträng Pakethanteraren som ska användas för beroendeinstallation. Åsidosätter automatisk identifiering från låsfiler. Tillåtna värden: npm, pnpm, yarn.

Python-konfiguration

Fastighet Krävs Typ Beskrivning
virtualEnvName N sträng Katalognamnet för den virtuella Python-miljön. Standardvärdet är automatisk identifiering (.venv, venv) eller {baseName}_env.

.NET-konfiguration (dotnet)

Fastighet Krävs Typ Beskrivning
configuration N sträng MSBuild-konfigurationen för att skapa hook-skriptet (till exempel Debug, Release).
framework N sträng Målramverkets moniker för att skapa och köra hook-skriptet (till exempel net8.0, net10.0).

Shell (sh, pwsh) config

Shell-utförare stöder config för närvarande inte egenskaper.

Krokexempel

Plattformsspecifika krokar

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

Python-krok med typ

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

Flera krokar för en enskild händelse

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

requiredVersions

(objekt) Tillhandahåller ytterligare konfiguration för nödvändiga versioner av azd och tillägg.

Fastighet Krävs Typ Beskrivning
azd N sträng Ett antal versioner av azd som stöds för det här projektet. Om versionen av azd ligger utanför det här intervallet kan projektet inte läsas in. Stöder semverintervallsyntax.
extensions N objekt En karta över nödvändiga tillägg och versionsbegränsningar för det här projektet. Stöder semverbegränsningar. Om versionen utelämnas installeras den senaste versionen.
requiredVersions:
  azd: ">= 0.6.0-beta.3"
  extensions:
    azure.ai.agents: ">=1.0.0"
    my-extension: latest

state

(objekt) Tillhandahåller ytterligare konfiguration för tillståndshantering.

Fastighet Krävs Typ Beskrivning
remote N objekt Tillhandahåller ytterligare konfiguration för fjärrtillståndshantering. Se även state.remote.

state.remote

Fastighet Krävs Typ Beskrivning
backend Y sträng Fjärrtillståndets serverdelstyp. Förvald: AzureBlobStorage. Tillåtna värden: AzureBlobStorage.
config Conditional objekt Serverdelsspecifik konfiguration. Krävs när backend är AzureBlobStorage. Se Konfiguration av Azure Blob Storage.

Azure Blob Storage-konfiguration

Fastighet Krävs Typ Beskrivning
accountName Y sträng Azure Storage-kontonamnet.
containerName N sträng Containernamnet för Azure Storage. Standardvärdet är projektnamnet om det inte anges.
endpoint N sträng Azure Storage-slutpunkten. Förvald: blob.core.windows.net.
state:
  remote:
    backend: AzureBlobStorage
    config:
      accountName: mystorageaccount
      containerName: azd-state

platform

(objekt) Ger ytterligare konfiguration för plattformsspecifika funktioner som Azure Dev Center.

Fastighet Krävs Typ Beskrivning
type Y sträng Plattformstypen. Tillåtna värden: devcenter.
config N objekt Plattformsspecifik konfiguration. Se Dev Center-konfiguration.

Dev Center-konfiguration

Tillgängligt när type är devcenter:

Fastighet Krävs Typ Beskrivning
name N sträng Namnet på Azure Dev Center. Används som standardutvecklingscenter för det här projektet.
project N sträng Namnet på Azure Dev Center-projektet.
catalog N sträng Namnet på Azure Dev Center-katalogen.
environmentDefinition N sträng Namnet på dev center-katalogmiljödefinitionen.
environmentType N sträng Projektmiljötypen Dev Center som används för distributionsmiljön.
platform:
  type: devcenter
  config:
    name: my-devcenter
    project: my-project
    catalog: my-catalog
    environmentDefinition: my-env-def
    environmentType: dev

workflows

(objekt) Tillhandahåller ytterligare konfiguration för arbetsflöden, till exempel åsidosättande azd up beteende.

Fastighet Krävs Typ Beskrivning
up N objekt eller matris När det anges åsidosätter standardbeteendet för azd up arbetsflödet.

Arbetsflödessteg

Arbetsflödet up accepterar en steps matris (eller kan anges direkt som en matris). Varje steg kör ett azd kommando.

Fastighet Krävs Typ Beskrivning
azd Y sträng eller objekt Kommandot azd som ska köras. Kan vara en sträng (till exempel provision) eller ett objekt med en args matris.

Konfigurera arbetsflödets stegordning

azure.yaml Följande fil ändrar standardbeteendet azd up för att flytta azd package steget efter stegetazd provision. Använd den här metoden i scenarier där du behöver känna till URL:er för resurser under bygg- eller paketeringsprocessen.

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

cloud

(objekt) Tillhandahåller ytterligare konfiguration för distribution till nationella moln, till exempel Azure Government. Standardmolnet är AzureCloud.

Fastighet Krävs Typ Beskrivning
name N sträng Namnet på molnmiljön. Tillåtna värden: AzureCloud, AzureChinaCloud, AzureUSGovernment.
cloud:
  name: AzureUSGovernment

Begär hjälp

Information om hur du skickar in en bugg, begär hjälp eller föreslår en ny funktion för Azure Developer CLI finns på sidan felsökning och support.

Nästa steg