Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Developer CLI-hooksystemet (azd) stöder Python, JavaScript, TypeScript och .NET utöver Bash och PowerShell.
azd identifierar automatiskt språket från filtillägget, hanterar beroenden och kör skriptet utan att någon extra konfiguration krävs.
Med hooks kan du köra anpassad logik vid viktiga punkter i azd livscykeln, till exempel före etablering, efter distribution med mera. Allmän information om krokar, inklusive tillgängliga hook-händelser och konfigurationsalternativ, finns i Anpassa arbetsflöden med hjälp av kommando- och händelsekrokar.
Prerequisites
- Installera azd
- Körmiljön för det valda språket måste vara installerad på datorn:
- Python: Python 3.x
- JavaScript/TypeScript: Node.js
- .NET: .NET SDK
Språkidentifiering
Peka en krok på en skriptfil i azure.yamloch azd härleder språket från filnamnstillägget. Om tillägget är tvetydigt eller saknas anger du språket explicit med fältet kind :
hooks:
preprovision:
run: ./hooks/setup.py
kind: python # explicit — overrides extension inference
Python-krokar
Om du vill skriva en Python-krok skapar du en .py fil och refererar till den i din azure.yaml. Placera en requirements.txt eller pyproject.toml i samma katalog som skriptet eller en överordnad katalog.
azd går upp i katalogträdet från skriptplatsen för att hitta den närmaste projektfilen, skapar en virtuell miljö, installerar beroenden och kör skriptet.
Exempel på katalogstruktur
hooks/
├── setup.py
└── requirements.txt
Exempelkonfiguration
hooks:
preprovision:
run: ./hooks/setup.py
Python-specifik konfiguration
Använd blocket config för att åsidosätta standardnamnet för den virtuella miljön.
hooks:
preprovision:
run: ./hooks/setup.py
config:
virtualEnvName: .venv # override default naming
JavaScript- och TypeScript-krokar
Om du vill skriva JavaScript- eller TypeScript-krokar skapar du en .js eller .ts en fil och refererar till den i din azure.yaml. Placera en package.json i samma katalog som skriptet eller en överordnad katalog.
azd kör npm install (eller pakethanteraren som anges i config blocket) och kör skriptet. TypeScript-skript körs via npx tsx utan kompileringssteg eller tsconfig.json behövs.
Exempel på katalogstruktur
hooks/
├── seed.ts
└── package.json
Exempelkonfiguration
hooks:
postdeploy:
run: ./hooks/seed.ts
JavaScript- och TypeScript-konfiguration
Använd blocket config för att ange en önskad pakethanterare.
hooks:
postdeploy:
run: ./hooks/seed.ts
config:
packageManager: pnpm # npm | pnpm | yarn
.NET-krokar
Två lägen stöds för .NET-krokar:
-
Projektläge: Om en
.csproj,.fsproj, eller.vbprojfinns i samma katalog som skriptet eller en överordnad katalog,azdkörsdotnet restoreochdotnet buildautomatiskt. -
Enfilsläge: På .NET 10+ körs fristående filer direkt via
dotnet run script.csutan en projektfil.
Exempel på katalogstruktur
hooks/
├── migrate.cs
└── migrate.csproj # optional — omit for single-file mode on .NET 10+
Exempelkonfiguration
hooks:
postprovision:
run: ./hooks/migrate.cs
. NET-specifik konfiguration
Ange byggkonfigurationen och målramverket genom att använda config blocket:
hooks:
postprovision:
run: ./hooks/migrate.cs
config:
configuration: Release # Debug | Release
framework: net10.0 # target framework
Åsidosätt arbetskatalogen
Ange arbetskatalogen för en krok med hjälp av fältet dir. Den här konfigurationen är användbar när projektroten skiljer sig från skriptplatsen:
hooks:
preprovision:
run: main.py
dir: hooks/preprovision
Blanda språk och format
Använd olika språk för olika hookar i samma azure.yaml-fil. Du kan också kombinera flerspråkiga hooks med plattformsspecifika åsidosättningar.
hooks:
preprovision:
run: ./hooks/setup.py
postdeploy:
run: ./hooks/seed.ts
postprovision:
run: ./hooks/migrate.cs
predeploy:
windows:
run: ./hooks/build.ps1
posix:
run: ./hooks/build.sh
Relaterat innehåll
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 troubleshooting and support.