Az Azure Developer CLI munkafolyamatainak testreszabása parancs- és eseményhookok használatával
Az Azure Developer CLI számos bővítménypontot támogat a munkafolyamatok és az üzemelő példányok testreszabásához. A hooks köztes szoftver lehetővé teszi egyéni szkriptek végrehajtását a parancsok és a szolgáltatás életciklusának eseményei előtt és után azd
. a horgok egy elnevezési konvenciót követnek, amely elő- és utótagokat használ a megfelelő azd
parancs vagy szolgáltatásesemény nevére.
Előfordulhat például, hogy egyéni szkriptet szeretne futtatni a következő forgatókönyvekben:
- A függőségkezelés testreszabásához használja a prerestore horgot.
- Az alkalmazás üzembe helyezése előtt az előre üzembehelyezési kampóval ellenőrizheti, hogy vannak-e külső függőségek vagy egyéni konfigurációk.
- A munkafolyamat vagy folyamat végén található postup horoggal egyéni törlést vagy naplózást végezhet.
Elérhető horgok
A következő azd
parancshookok érhetők el:
prerestore
éspostrestore
: Futtassa a csomagfüggőségek visszaállítása előtt és után.preprovision
éspostprovision
: Futtassa az Azure-erőforrások létrehozása előtt és után.predeploy
éspostdeploy
: Futtassa az alkalmazáskódot az Azure-ban való üzembe helyezés előtt és után.preup
éspostup
: Futtassa a kombinált üzembehelyezési folyamat előtt és után.Up
egy rövidített parancs, amely szekvenciálisan futrestore
provision
deploy
.predown
éspostdown
: Futtassa az erőforrások eltávolítása előtt és után.
A következő szolgáltatás életciklus-eseményhookok érhetők el:
prerestore
éspostrestore
: Futtassa a szolgáltatáscsomagok és függőségek visszaállítása előtt és után.prepackage
éspostpackage
: Futtatás az alkalmazás üzembe helyezéshez való csomagolása előtt és után.predeploy
éspostdeploy
: Futtassa a szolgáltatáskódot az Azure-ban való üzembe helyezés előtt és után.
Horogkonfiguráció
A horgok regisztrálhatók a azure.yaml
fájlban a gyökérkiszolgálón vagy egy adott szolgáltatáskonfiguráción belül. A horgok minden típusa támogatja a következő konfigurációs beállításokat:
shell
:sh
|pwsh
(ha nincs megadva, a futtatásból automatikusan következtet).- Megjegyzés: A PowerShell 7 szükséges a
pwsh
.
- Megjegyzés: A PowerShell 7 szükséges a
run
: Beágyazott szkript vagy fájl elérési útja definiálása.continueOnError
: Ha a beállítás akkor is folytatódik, ha szkripthiba történt a parancshook során (alapértelmezett hamis).interactive
: Ha a beállítás a futó szkriptet a konzolhozstdin
köti,stdout
&stderr
(alapértelmezett hamis).windows
: Azt adja meg, hogy a beágyazott konfigurációk csak Windows operációs rendszerre lesznek érvényesek. Ha ez a konfigurációs lehetőség nincs kizárva, a horog minden platformon végrehajtható.posix
: Azt adja meg, hogy a beágyazott konfigurációk csak POSIX-alapú OSes-ekre (Linux & MaxOS) lesznek érvényesek. Ha ez a konfigurációs lehetőség nincs kizárva, a horog minden platformon végrehajtható.
Példák horogra
Az alábbi példák a horogregisztrációk és -konfigurációk különböző típusait mutatják be.
Fő parancsregisztráció
A horgok konfigurálhatók úgy, hogy a azd
fájl gyökerében meghatározott parancsokhoz fussanak azure.yaml
.
A projektkönyvtár (ahol a azure.yaml
fájl található) a parancshookok alapértelmezett aktuális munkakönyvtára (cwd
).
name: todo-nodejs-mongo
metadata:
template: todo-nodejs-mongo@0.0.1-beta
hooks:
prerestore: # Example of an inline script. (shell is required for inline scripts)
shell: sh
run: echo 'Hello'
preprovision: # Example of external script (Relative path from project root)
run: ./hooks/preprovision.sh
services:
web:
project: ./src/web
dist: build
language: js
host: appservice
api:
project: ./src/api
language: js
host: appservice
Szolgáltatásregisztráció
A horgok úgy is konfigurálhatók, hogy csak a .yaml
fájlban meghatározott szolgáltatásokhoz fussanak.
A szolgáltatáskönyvtár (a fájl szolgáltatáskonfigurációjának tulajdonságában project
azure.yaml
definiált elérési út) a szolgáltatáshookok alapértelmezett értéke cwd
.
name: todo-nodejs-mongo
metadata:
template: todo-nodejs-mongo@0.0.1-beta
services:
web:
project: ./src/web
dist: build
language: js
host: appservice
api:
project: ./src/api
language: js
host: appservice
hooks:
prerestore: # Example of an inline script. (shell is required for inline scripts)
shell: sh
run: echo 'Restoring API service...'
prepackage: # Example of external script (Relative path from service path)
run: ./hooks/prepackage.sh
Operációsrendszer-specifikus horgok
A horgok konfigurálhatók Windows vagy Posix rendszeren (Linux & MaxOS) is. Alapértelmezés szerint, ha a Windows- vagy Posix-konfigurációk nincsenek kizárva, a horog minden platformon végrehajtva lesz.
name: todo-nodejs-mongo
metadata:
template: todo-nodejs-mongo@0.0.1-beta
hooks:
prerestore:
posix: # Only runs on Posix environments
shell: sh
run: echo 'Hello'
windows: # Only runs on Windows environments
shell: pwsh
run: Write-Host "Hello"
services:
web:
project: ./src/web
dist: build
language: js
host: appservice
api:
project: ./src/api
language: js
host: appservice
Környezeti változók használata horgokkal
A horgok a parancsok és azd set <key> <value>
a parancsok használatával lekérhetik és beállíthatják a fájlban lévő .env
azd env get-values
környezeti változókat. A horgok a szintaxis használatával is lekérhetik a környezeti változókat a ${YOUR_ENVIRONMENT VARIABLE}
helyi környezetből. azd
a parancsok futtatásakor automatikusan beállít bizonyos környezeti változókat a .env
fájlban, például AZURE_ENV_NAME
és AZURE_LOCATION
. A fájl kimeneti main.bicep
paraméterei is be vannak állítva a .env
fájlban. A környezeti változók kezelése lap további információkat tartalmaz a környezeti változók munkafolyamatairól.
A horgok a környezeti változókat beágyazottan vagy hivatkozott szkripteken keresztül is lekérhetik és beállíthatják, ahogy az a következő példában is látható:
name: azure-search-openai-demo
metadata:
template: azure-search-openai-demo@0.0.2-beta
services:
backend:
project: ./app/backend
language: py
host: appservice
hooks:
postprovision:
windows: # Run referenced script that uses environment variables (script shown below)
shell: pwsh
run: ./scripts/prepdocs.ps1
interactive: true
continueOnError: false
posix:
shell: sh
run: ./scripts/prepdocs.sh
interactive: true
continueOnError: false
postdeploy: # Pull environment variable inline from local device and set in .env file
shell: sh
run: azd env set REACT_APP_WEB_BASE_URL ${SERVICE_WEB_ENDPOINT_URL}
A hivatkozott: prepdocs.sh
szkript:
echo "Loading azd .env file from current environment"
# Use the `get-values` azd command to retrieve environment variables from the `.env` file
while IFS='=' read -r key value; do
value=$(echo "$value" | sed 's/^"//' | sed 's/"$//')
export "$key=$value"
done <<EOF
$(azd env get-values)
EOF
echo 'Creating python virtual environment "scripts/.venv"'
python3 -m venv scripts/.venv
echo 'Installing dependencies from "requirements.txt" into virtual environment'
./scripts/.venv/bin/python -m pip install -r scripts/requirements.txt
echo 'Running "prepdocs.py"'
./scripts/.venv/bin/python ./scripts/prepdocs.py './data/*'
--storageaccount "$AZURE_STORAGE_ACCOUNT"
--container "$AZURE_STORAGE_CONTAINER"
--searchservice "$AZURE_SEARCH_SERVICE"
--openaiservice "$AZURE_OPENAI_SERVICE"
--openaideployment "$AZURE_OPENAI_EMB_DEPLOYMENT"
--index "$AZURE_SEARCH_INDEX"
--formrecognizerservice "$AZURE_FORMRECOGNIZER_SERVICE"
--tenantid "$AZURE_TENANT_ID" -v
Segítség kérése
Ha tudni szeretné, hogyan nyújthat be hibát, kérhet segítséget, vagy javasolhat új funkciót az Azure Developer CLI-hez, látogasson el a hibaelhárítási és támogatási oldalra.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: