Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das Azure Developer CLI (azd)-Hook-System unterstützt Zusätzlich zu Bash und PowerShell Python, JavaScript, TypeScript und .NET .
azd erkennt automatisch die Sprache aus der Dateierweiterung, verwaltet Abhängigkeiten und führt das Skript ohne zusätzliche Konfiguration aus.
Mit Hooks können Sie benutzerdefinierte Logik an wichtigen Punkten im Lebenszyklus ausführen, z. B. vor der azd Bereitstellung, nach der Bereitstellung und mehr. Allgemeine Informationen zu Hooks, einschließlich verfügbarer Hookereignisse und Konfigurationsoptionen, finden Sie unter Anpassen von Workflows mithilfe von Befehls- und Ereignishaken.
Voraussetzungen
- Installieren von azd
- Die Laufzeit für die ausgewählte Sprache muss auf Ihrem Computer installiert sein:
- Python: Python 3.x
- JavaScript/TypeScript: Node.js
- .NET: .NET SDK
Spracherkennung
Zeigen Sie einen Hook auf eine Skriptdatei in azure.yaml, und azd leitet die Sprache aus der Dateierweiterung ab. Wenn die Erweiterung mehrdeutig oder fehlt, geben Sie die Sprache explizit mit dem kind Feld an:
hooks:
preprovision:
run: ./hooks/setup.py
kind: python # explicit — overrides extension inference
Python Hooks
Um einen Python-Hook zu schreiben, erstellen Sie eine .py Datei, und verweisen Sie darauf in Ihrer azure.yaml. Platzieren Sie ein requirements.txt oder pyproject.toml in demselben Verzeichnis wie das Skript oder ein übergeordnetes Verzeichnis.
azd durchläuft den Verzeichnisbaum ab dem Skriptstandort, um die nächstgelegene Projektdatei zu finden, erstellt eine virtuelle Umgebung, installiert die Abhängigkeiten und führt das Skript aus.
Beispielverzeichnisstruktur
hooks/
├── setup.py
└── requirements.txt
Beispielkonfiguration
hooks:
preprovision:
run: ./hooks/setup.py
Python-spezifische Konfiguration
Verwenden Sie den config Block, um den Namen der standardmäßigen virtuellen Umgebung außer Kraft zu setzen.
hooks:
preprovision:
run: ./hooks/setup.py
config:
virtualEnvName: .venv # override default naming
JavaScript- und TypeScript-Hooks
Um JavaScript- oder TypeScript-Hooks zu schreiben, erstellen Sie eine .js- oder eine .ts-Datei und verweisen Sie in Ihrem azure.yaml darauf. Platzieren Sie package.json im selben Verzeichnis wie Ihr Skript oder in einem übergeordneten Verzeichnis.
azd führt npm install aus (oder den im config Block angegebenen Paket-Manager) und führt dann das Skript aus. TypeScript-Skripts werden ohne npx tsx Kompilierungsschritt oder tsconfig.json erforderlich ausgeführt.
Beispielverzeichnisstruktur
hooks/
├── seed.ts
└── package.json
Beispielkonfiguration
hooks:
postdeploy:
run: ./hooks/seed.ts
JavaScript- und TypeScript-Konfiguration
Verwenden Sie den config Block, um einen bevorzugten Paket-Manager anzugeben.
hooks:
postdeploy:
run: ./hooks/seed.ts
config:
packageManager: pnpm # npm | pnpm | yarn
.NET-Hooks
Für .NET-Hooks werden zwei Modi unterstützt:
-
Projektmodus: Wenn ein
.csproj,.fsproj, oder.vbprojin demselben Verzeichnis wie das Skript oder in einem übergeordneten Verzeichnis vorhanden ist, führtazdautomatischdotnet restoreunddotnet buildaus. -
Einzeldateimodus: Auf .NET 10+ werden eigenständige
.csDateien direkt ohnedotnet run script.csProjektdatei ausgeführt.
Beispielverzeichnisstruktur
hooks/
├── migrate.cs
└── migrate.csproj # optional — omit for single-file mode on .NET 10+
Beispielkonfiguration
hooks:
postprovision:
run: ./hooks/migrate.cs
. NET-spezifische Konfiguration
Geben Sie die Buildkonfiguration und das Zielframework mithilfe des config Blocks an:
hooks:
postprovision:
run: ./hooks/migrate.cs
config:
configuration: Release # Debug | Release
framework: net10.0 # target framework
Überschreiben des Arbeitsverzeichnisses
Legen Sie das Arbeitsverzeichnis für einen Hook mithilfe des dir Felds fest. Diese Konfiguration ist nützlich, wenn sich der Projektstamm vom Skriptspeicherort unterscheidet:
hooks:
preprovision:
run: main.py
dir: hooks/preprovision
Mischen von Sprachen und Formaten
Verwenden Sie unterschiedliche Sprachen für verschiedene Hooks in derselben azure.yaml Datei. Sie können auch mehrsprachige Hooks mit plattformspezifischen Überschreibungen kombinieren.
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
Verwandte Inhalte
Hilfe anfordern
Informationen zum Melden eines Fehlers, Anfordern von Hilfe oder Vorschlagen einer neuen Funktion für die Azure Developer CLI finden Sie auf der Seite Fehlerbehebung und Support.