Azd hooks írása Pythonban, JavaScriptben, TypeScriptben vagy .NET-ben

Az Azure Developer CLI (azd) horogrendszer a Bash és a PowerShell mellett támogatja a Pythont, a JavaScriptet, a TypeScriptet és a .NET-et . azd automatikusan észleli a nyelvet a fájlkiterjesztésből, kezeli a függőségeket, és további konfiguráció nélkül futtatja a szkriptet.

Horgokkal egyéni logikát futtathat az életciklus kulcsfontosságú pontjain, mint például a azd kiépítés előtt, az üzembe helyezés után és más esetekben is. A horogokkal kapcsolatos általános információkért, beleértve a rendelkezésre álló horogeseményeket és konfigurációs beállításokat, olvassa el a munkafolyamatok testreszabása parancs- és eseményhookok használatával című témakört.

Prerequisites

Nyelvfelismerés

Mutasson egy horgot a azure.yaml szkriptfájlra, és a fájlkiterjesztés alapján a azd következtet a nyelvre. Ha a bővítmény nem egyértelmű vagy hiányzik, adja meg a nyelvet explicit módon a kind mezővel:

hooks:
  preprovision:
    run: ./hooks/setup.py
    kind: python    # explicit — overrides extension inference

Python-hookok

Python-horog írásához hozzon létre egy .py fájlt, és hivatkozzon rá a azure.yamlsaját fájljában. Helyezzen el egy requirements.txt vagy pyproject.toml ugyanabban a könyvtárban, mint a szkript, vagy egy szülőkönyvtárban. azd A szkript helyére lépve megkeresi a legközelebbi projektfájlt, létrehoz egy virtuális környezetet, telepíti a függőségeket, és futtatja a szkriptet.

Példa könyvtárszerkezetre

hooks/
├── setup.py
└── requirements.txt

Konfigurációs példa

hooks:
  preprovision:
    run: ./hooks/setup.py

Python-specifikus konfiguráció

config A blokk használatával felülbírálhatja az alapértelmezett virtuális környezetnevet.

hooks:
  preprovision:
    run: ./hooks/setup.py
    config:
      virtualEnvName: .venv   # override default naming

JavaScript- és TypeScript-horgok

JavaScript- vagy TypeScript-horgok írásához hozzon létre egy .js vagy egy .ts fájlt, és hivatkozzon rá a azure.yaml. Helyezzen egy package.json fájlt ugyanabba a könyvtárba, mint a szkript vagy a szülőkönyvtár. azd futtatja npm install (vagy a blokkban megadott csomagkezelőt config ), és végrehajtja a szkriptet. A TypeScript-szkriptek fordítási lépés vagy tsconfig.json szüksége nélkül, npx tsx keresztül futnak.

Példa könyvtárszerkezetre

hooks/
├── seed.ts
└── package.json

Konfigurációs példa

hooks:
  postdeploy:
    run: ./hooks/seed.ts

JavaScript- és TypeScript-konfiguráció

config A blokk használatával adjon meg egy előnyben részesített csomagkezelőt.

hooks:
  postdeploy:
    run: ./hooks/seed.ts
    config:
      packageManager: pnpm    # npm | pnpm | yarn

.NET-horgok

A .NET-horgok esetében két mód támogatott:

  • Projekt mód: Ha egy .csproj, .fsproj, vagy .vbproj a szkripttel megegyező könyvtárban vagy annak szülőkönyvtárában található, azd automatikusan futtatja a dotnet restore és a dotnet build-t.
  • Egyfájlos mód: A .NET 10+-on az önálló .cs fájlok közvetlenül dotnet run script.cs projektfájl nélkül futnak.

Példa könyvtárszerkezetre

hooks/
├── migrate.cs
└── migrate.csproj   # optional — omit for single-file mode on .NET 10+

Konfigurációs példa

hooks:
  postprovision:
    run: ./hooks/migrate.cs

. NET-specifikus konfiguráció

Adja meg a buildkonfigurációt és a cél-keretrendszert a config blokk használatával:

hooks:
  postprovision:
    run: ./hooks/migrate.cs
    config:
      configuration: Release  # Debug | Release
      framework: net10.0      # target framework

A munkakönyvtár felülbírálása

Állítsa be a munkakönyvtárat egy horog számára a dir mező használatával. Ez a konfiguráció akkor hasznos, ha a projektgyökér eltér a szkript helyétől:

hooks:
  preprovision:
    run: main.py
    dir: hooks/preprovision

Nyelvek és formátumok keverése

Használjon különböző nyelveket ugyanabban azure.yaml a fájlban lévő különböző horgokhoz. A többnyelvű hookokat platformspecifikus felülbírálásokkal is kombinálhatja:

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

Segítség kérése

Ha további információt szeretne megtudni arról, hogyan nyújthat be hibát, kérhet segítséget vagy javasolhat új funkciót a Azure fejlesztői parancssori felületéhez, látogasson el a troubleshooting és támogatás oldalra.