Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A horgok olyan azd bővítménypontok, amelyek automatikusan hajtanak végre egyéni szkripteket a parancsok és a szolgáltatás életciklus-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 előtár horogot.
- Az alkalmazás üzembe helyezése előtt az előre üzembe helyezési horoggal 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. -
prepackageéspostpackage: Futtassa az alkalmazás csomagolá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. -
prepublishéspostpublish: Futtassa az alkalmazás közzététele előtt és után. -
preupéspostup: Futtassa a kombinált üzembehelyezési folyamat előtt és után.Upegy gyorsparancs, amelyrestore,provisionésdeployegymás után fut. -
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. -
prebuildéspostbuild: Futtassa a szolgáltatás forráskódja vagy tárolója előtt és után. -
prepackageéspostpackage: Futtassa 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. -
prepublishéspostpublish: Futtassa a szolgáltatás közzététele előtt és után.
Horogkonfiguráció
A horgok a gyökérkiszolgálón vagy egy adott szolgáltatáskonfigurációban vannak regisztrálva a fájlban azure.yaml . A horgok minden típusa támogatja a következő konfigurációs beállításokat:
-
shell:sh|pwsh-
Megjegyzés: A PowerShell 7 szükséges
pwsh.
-
Megjegyzés: A PowerShell 7 szükséges
-
run: Beágyazott szkript vagy fájl elérési útja. -
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 konzolhoz köti,stdin,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 határozza meg, hogy a beágyazott konfigurációk csak POSIX-alapú operációs rendszerekre (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 úgy konfigurálhatók, hogy a azd fájl gyökerében meghatározott azure.yaml parancsokhoz fussanak.
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 (az project fájl szolgáltatáskonfigurációjának azure.yaml tulajdonságában definiált elérési út) a szolgáltatáshookok alapértelmezett 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
Eseményenként több horog
Eseményenként több horogot is konfigurálhat különböző hatókörökben, például a gyökérregisztrációs szinten vagy egy adott szolgáltatásban:
name: example-project
services:
api:
project: src/api
host: containerapp
language: ts
hooks:
postprovision:
- shell: sh
run: scripts/postprovision1.sh
- shell: sh
run: scripts/postprovision2.sh
hooks:
postprovision:
- shell: sh
run: scripts/postprovision1.sh
- shell: sh
run: scripts/postprovision2.sh
Horgok egymástól függetlenül való futtatása
A azd hooks run parancs lehetővé teszi, hogy a horgokat a normál eseményindító eseményektől függetlenül hajtsa végre. Ez hasznos a horgok teszteléséhez és hibakereséséhez anélkül, hogy végigmennél a teljes munkafolyamaton.
azd hooks run <hook-name>
Cserélje le <hook-name> a futtatni kívánt horog nevére (pl. preprovision, postdeploy).
Speciális beállítások
# Run a specific service hook
azd hooks run postdeploy --service api
# Force hooks to run for a specific platform
azd hooks run preprovision --platform windows
# Run hooks in a specific environment
azd hooks run postup -e staging
# Run hooks with all options combined
azd hooks run predeploy --service frontend --platform posix -e production --interactive
Interaktív mód konfigurálása
A horgok alapértelmezés szerint interaktív módban futnak. Az interaktív horog mód lehetővé teszi horogszkriptek közvetlen konzol-interakcióval történő futtatását, így egyszerűbben végezhet hibakeresést, monitorozást és a horgok valós idejű kezelését. A tulajdonságot explicit módon beállíthatja a interactive horogkonfigurációban, ha le szeretné tiltani az interaktív módot egy adott horog esetében:
hooks:
postprovision:
shell: sh
run: ./scripts/setup-database.sh
interactive: false # Default is true
Szolgáltatásspecifikus horgok esetén:
services:
api:
project: ./src/api
language: js
host: appservice
hooks:
postdeploy:
shell: sh
run: ./scripts/post-deploy-verification.sh
interactive: false # Override the default interactive mode
Környezeti változók használata horgokkal
A horgok a .env és azd env get-values parancsok használatával lekérhetik és beállíthatják a környezeti változókat a azd set <key> <value> fájlban. A horgok a környezeti változókat is lekérhetik a helyi környezetből a ${YOUR_ENVIRONMENT VARIABLE} szintaxis használatával.
azd 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 main.bicep fájl kimeneti paraméterei a .env fájlban is be vannak állítva. A környezeti változók kezelése lapon további információk találhatók 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.