Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kancalar, komutlardan önce ve sonra azd özel betikleri ve hizmet yaşam döngüsü olaylarını otomatik olarak yürüten uzantı noktalarıdırazd. Kancalar, eşleşen komut veya hizmet olayı adında ön ekleriazd adlandırma kuralını izler.
Örneğin, aşağıdaki senaryolarda özel bir betik çalıştırmak isteyebilirsiniz:
- Bağımlılık yönetimini özelleştirmek için prerestore kancasını kullanın.
- Uygulamanızı dağıtmadan önce dış bağımlılıkların veya özel yapılandırmaların mevcut olduğunu doğrulamak için ön dağıtım kancasını kullanın.
- Özel temizleme veya günlük kaydı gerçekleştirmek için bir iş akışının veya işlem hattının sonundaki postup kancasını kullanın.
Kullanılabilir kancalar
Aşağıdaki azd komut kancaları kullanılabilir:
-
prerestorevepostrestore: Paket bağımlılıkları geri yüklenmeden önce ve sonra çalıştırın. -
preprovisionvepostprovision: Azure kaynakları oluşturulmadan önce ve sonra çalıştırın. -
prepackagevepostpackage: Uygulama paketlendiğinden önce ve sonra çalıştırın. -
predeployvepostdeploy: Uygulama kodu Azure'a dağıtılmadan önce ve sonra çalıştırın. -
prepublishvepostpublish: Uygulama yayımlanmadan önce ve sonra çalıştırın. -
preupvepostup: Birleşik dağıtım işlem hattından önce ve sonra çalıştırın.Up,restore,provisionve sırayladeployçalıştıran bir kısaltma komutudur. -
predownvepostdown: Kaynaklar kaldırılmadan önce ve sonra çalıştırın.
Aşağıdaki hizmet yaşam döngüsü olay kancaları kullanılabilir:
-
prerestorevepostrestore: Hizmet paketleri ve bağımlılıkları geri yüklenmeden önce ve sonra çalıştırın. -
prebuildvepostbuild: Hizmet kaynak kodu veya kapsayıcısı oluşturulduktan önce ve sonra çalıştırın. -
prepackagevepostpackage: Uygulama dağıtım için paketlenmiş durumdan önce ve sonra çalıştırın. -
predeployvepostdeploy: Hizmet kodu Azure'a dağıtılmadan önce ve sonra çalıştırın. -
prepublishvepostpublish: Hizmet yayımlanmadan önce ve sonra çalıştırın.
Kanca yapılandırması
Kancalar, dosyanıza azure.yaml kökte veya belirli bir hizmet yapılandırmasında kaydedilir. Tüm kanca türleri aşağıdaki yapılandırma seçeneklerini destekler:
-
shell:sh|pwsh-
Not:
pwshiçin PowerShell 7 gereklidir.
-
Not:
-
run: Satır içi betik veya dosya yolu tanımlayın. -
continueOnError: Ayarlandığında, komut kancası sırasında bir betik hatası oluştuktan sonra bile yürütülmeye devam eder (varsayılan false). -
interactive: Ayarlandığında, çalışan betiğistdinkonsoluna bağlarstdout&stderr(varsayılan false). -
windows: İç içe yapılandırmaların yalnızca windows işletim sisteminde uygulanacağını belirtir. Bu yapılandırma seçeneği dışlanırsa, kanca tüm platformlarda yürütülür. -
posix: İç içe yapılandırmaların yalnızca POSIX tabanlı işletim sistemlerine (Linux & MaxOS) uygulanacağını belirtir. Bu yapılandırma seçeneği dışlanırsa, kanca tüm platformlarda yürütülür.
Kanca örnekleri
Aşağıdaki örneklerde farklı türlerdeki kanca kayıtları ve yapılandırmaları gösterilmektedir.
Kök komut kaydı
Kancalar, azd dosyanızın kökündeki belirli azure.yaml komutları için çalışacak şekilde yapılandırılabilir.
Proje dizini (azure.yaml dosyasının bulunduğu yer), komut kancaları için varsayılan geçerli çalışma dizinidir (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
Hizmet kaydı
Kancalar yalnızca .yaml dosyanızda tanımlanan belirli hizmetler için çalışacak şekilde de yapılandırılabilir.
Hizmet dizini (project dosyasındaki hizmet yapılandırmasının azure.yaml özelliğinde tanımlanan yol), hizmet kancaları için varsayılan 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
İşletim sistemine özgü kancalar
İsteğe bağlı olarak, kancalar Windows veya Posix'te (Linux & MaxOS) çalışacak şekilde de yapılandırılabilir. Varsayılan olarak, Windows veya Posix yapılandırmaları dışlanırsa kanca tüm platformlarda yürütülür.
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
Olay başına birden çok kanca
Kök kayıt düzeyi veya belirli bir hizmet gibi farklı kapsamlarda olay başına birden çok kanca yapılandırabilirsiniz:
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
Kancaları bağımsız olarak çalıştırma
azd hooks run komutu, kancaları normal tetikleyici olaylarından bağımsız olarak yürütmenizi sağlar. Bu, iş akışının tamamına gitmeden kancaları test etme ve hata ayıklama için kullanışlıdır.
azd hooks run <hook-name>
öğesini çalıştırmak istediğiniz kancanın adıyla değiştirin <hook-name> (örneğin, preprovision, postdeploy).
Gelişmiş seçenekler
# 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
Etkileşimli modu yapılandırma
Kancalar varsayılan olarak etkileşimli modda çalışır. Etkileşimli kanca modu, kanca betiklerini doğrudan konsol etkileşimi ile çalıştırmanıza olanak sağlayarak kancalarınızın hatalarını ayıklamayı, izlemeyi ve kancalarınızla gerçek zamanlı olarak etkileşim kurmayı kolaylaştırır. Belirli bir kanca için interactive etkileşimli modu devre dışı bırakmak istiyorsanız, kanca yapılandırmanızda özelliğini açıkça ayarlayabilirsiniz:
hooks:
postprovision:
shell: sh
run: ./scripts/setup-database.sh
interactive: false # Default is true
Hizmete özgü kancalar için:
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
Ortam değişkenlerini kancalarla kullanma
Kancalar, .env ve azd env get-values komutlarını kullanarak azd set <key> <value> dosyasında ortam değişkenlerini alabilir ve ayarlayabilir. Kancalar, ${YOUR_ENVIRONMENT VARIABLE} söz dizimini kullanarak yerel ortamınızdan ortam değişkenlerini de alabilir.
azd, .env ve AZURE_ENV_NAMEgibi komutlar çalıştırıldığında AZURE_LOCATION dosyasındaki belirli ortam değişkenlerini otomatik olarak ayarlar.
main.bicep dosyasındaki çıkış parametreleri de .env dosyasında ayarlanır. ortam değişkenlerini yönetme sayfası, ortam değişkeni iş akışları hakkında daha fazla bilgi içerir.
Kancalar, aşağıdaki örnekte gösterildiği gibi ortam değişkenlerini satır içinde veya başvuruda bulunan betikler aracılığıyla alabilir ve ayarlayabilir:
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}
Başvuruda bulunan: prepdocs.sh betiği:
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
Yardım isteme
Azure Geliştirici CLI'sı için hata oluşturma, yardım isteme veya yeni bir özellik önerme hakkında bilgi için lütfen sorun giderme ve destek sayfasını ziyaret edin.