Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
System hooków w Azure Developer CLI (azd) obsługuje Python, JavaScript, TypeScript, .NET oraz środowiska Bash i PowerShell.
azd automatycznie wykrywa język z rozszerzenia pliku, zarządza zależnościami i uruchamia skrypt bez konieczności dodatkowej konfiguracji.
Haczyki umożliwiają uruchamianie logiki niestandardowej w kluczowych punktach cyklu życia azd, takich jak przed aprowizowaniem, po wdrożeniu i więcej. Aby uzyskać ogólne informacje na temat punktów zaczepienia, w tym dostępnych zdarzeń punktów zaczepienia i opcji konfiguracji, zobacz Dostosowywanie przepływów pracy przy użyciu poleceń i punktów zaczepienia zdarzeń.
Wymagania wstępne
- Instalowanie biblioteki azd
- Środowisko uruchomieniowe dla wybranego języka musi być zainstalowane na maszynie:
- Python: Python 3.x
- JavaScript/TypeScript: Node.js
- .NET: .NET SDK
Wykrywanie języka
Wskaż plik skryptu w azure.yaml, a azd wywnioskuje język na podstawie rozszerzenia pliku. Jeśli rozszerzenie jest niejednoznaczne lub brakuje go, określ język jawnie z polem kind :
hooks:
preprovision:
run: ./hooks/setup.py
kind: python # explicit — overrides extension inference
Haki języka Python
Aby napisać hak Pythona, utwórz plik .py i odnieś się do niego w azure.yaml. Umieść requirements.txt lub pyproject.toml w tym samym katalogu, co skrypt, lub w katalogu nadrzędnym.
azd przechodzi po drzewie katalogów od lokalizacji skryptu, aby znaleźć najbliższy plik projektu, tworzy środowisko wirtualne, instaluje zależności i uruchamia skrypt.
Przykładowa struktura katalogów
hooks/
├── setup.py
└── requirements.txt
Przykładowa konfiguracja
hooks:
preprovision:
run: ./hooks/setup.py
Konfiguracja specyficzna dla języka Python
Użyj bloku config, aby zmienić domyślną nazwę środowiska wirtualnego.
hooks:
preprovision:
run: ./hooks/setup.py
config:
virtualEnvName: .venv # override default naming
JavaScript i TypeScript Hooks
Aby napisać hooks w języku JavaScript lub TypeScript, utwórz plik .js lub .ts i odwołaj się do niego w pliku azure.yaml. Umieść element package.json w tym samym katalogu co twój skrypt lub w katalogu nadrzędnym skryptu.
azd uruchamia npm install (lub menedżera pakietów określonego w bloku config) i wykonuje skrypt. Skrypty języka TypeScript są uruchamiane za pomocą polecenia npx tsx bez kroku kompilacji ani tsconfig.json wymaganego.
Przykładowa struktura katalogów
hooks/
├── seed.ts
└── package.json
Przykładowa konfiguracja
hooks:
postdeploy:
run: ./hooks/seed.ts
Konfiguracja języków JavaScript i TypeScript
config Użyj bloku, aby określić preferowany menedżer pakietów.
hooks:
postdeploy:
run: ./hooks/seed.ts
config:
packageManager: pnpm # npm | pnpm | yarn
Interfejsy platformy .NET
Obsługiwane są dwa tryby dla haków .NET.
-
Tryb projektu: jeśli element
.csproj,.fsprojlub.vbprojistnieje w tym samym katalogu co skrypt lub katalog nadrzędny,azduruchamiadotnet restoreidotnet buildautomatycznie. -
Tryb pojedynczego pliku: w programie .NET 10 lub nowszym samodzielne autonomiczne pliki mogą być uruchamiane
.csbezpośrednio przezdotnet run script.csbez pliku projektu.
Przykładowa struktura katalogów
hooks/
├── migrate.cs
└── migrate.csproj # optional — omit for single-file mode on .NET 10+
Przykładowa konfiguracja
hooks:
postprovision:
run: ./hooks/migrate.cs
. Konfiguracja specyficzna dla platformy NET
Określ konfigurację kompilacji i strukturę docelową config przy użyciu bloku:
hooks:
postprovision:
run: ./hooks/migrate.cs
config:
configuration: Release # Debug | Release
framework: net10.0 # target framework
Zastąp katalog roboczy
Ustaw katalog roboczy dla haczyka za pomocą pola dir. Ta konfiguracja jest przydatna, gdy katalog główny projektu różni się od lokalizacji skryptu:
hooks:
preprovision:
run: main.py
dir: hooks/preprovision
Mieszanie języków i formatów
Użyj różnych języków dla różnych zaczepów w tym samym pliku azure.yaml. Można również połączyć wielojęzyczne haki z przesłonięciami specyficznymi dla platformy:
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
Treści powiązane
- Dostosuj przepływy pracy przy użyciu komend i hooków zdarzeń
- Dokumentacja interfejsu wiersza polecenia dla deweloperów platformy Azure
Zażądaj pomocy
Aby uzyskać informacje o tym, jak zgłosić usterkę, poprosić o pomoc lub zaproponować nową funkcję dla interfejsu wiersza polecenia dewelopera Azure, odwiedź stronę troubleshooting i pomoc techniczną.