Bu gönderi otomatik olarak çevrilmiştir. Orijinal sürüm için buraya tıklayın.
Tamamen .NET ile yazılmış bir projeniz olmasına rağmen azd hook’ları için Bash scriptleri yazmak zorunda kaldıysanız, bu acıyı iyi biliyorsunuzdur. Projenin geri kalanı C# iken, neden bir pre-provisioning adımı için shell sözdizimine geçiş yapmak zorunda kalınsın?
Bu hayal kırıklığı artık resmi bir çözüme kavuştu. Azure Developer CLI hook’lar için çok dilli destek yayımladı ve tam olarak duyulduğu kadar iyi.
Hook nedir?
Hook’lar, azd yaşam döngüsünün kritik noktalarında çalışan scriptlerdir — provisioning öncesi, deployment sonrası vb. azure.yaml içinde tanımlanır ve CLI’yi değiştirmeden özel mantık eklemenizi sağlar.
Önceden yalnızca Bash ve PowerShell destekleniyordu. Artık Python, JavaScript, TypeScript veya .NET kullanılabilir — azd geri kalanını otomatik olarak halleder.
Algılama nasıl çalışır
Yalnızca hook’u bir dosyaya yönlendirin; azd uzantıdan dili çıkarır:
hooks:
preprovision:
run: ./hooks/setup.py
postdeploy:
run: ./hooks/seed.ts
postprovision:
run: ./hooks/migrate.cs
Ek yapılandırma gerekmez. Uzantı belirsizse kind: python (veya ilgili dil) ile açıkça belirtebilirsiniz.
Dile göre önemli ayrıntılar
Python
Scriptin yanına (veya herhangi bir üst dizine) requirements.txt ya da pyproject.toml koyun. azd otomatik olarak sanal ortam oluşturur, bağımlılıkları kurar ve scripti çalıştırır.
JavaScript ve TypeScript
Aynı desen — script yakınına package.json koyun ve azd önce npm install çalıştırır. TypeScript için derleme adımı ve tsconfig.json gerekmeden npx tsx kullanılır.
.NET
İki mod mevcuttur:
- Proje modu: Script yanında
.csprojvarsaazdotomatik olarakdotnet restorevedotnet buildçalıştırır. - Tek dosya modu: .NET 10+ sürümünde bağımsız
.csdosyalarıdotnet run script.csile doğrudan çalıştırılabilir. Proje dosyası gerekmez.
Executor’a özgü yapılandırma
Her dil isteğe bağlı bir config bloğunu destekler:
hooks:
preprovision:
run: ./hooks/setup.ts
config:
packageManager: pnpm
postprovision:
run: ./hooks/migrate.cs
config:
configuration: Release
framework: net10.0
.NET geliştiricileri için önemi
Hook’lar, azd tabanlı bir projede dil değiştirmeyi zorunlu kılan son yerdi. Artık uygulama kodu, altyapı scriptleri ve yaşam döngüsü hook’ları dahil tüm deployment pipeline’ı tek bir dilde yaşayabilir. Mevcut .NET yardımcı programlarını hook’larda yeniden kullanabilir, paylaşılan kütüphanelere referans verebilir ve shell script bakımından kurtulabilirsiniz.
Sonuç
Küçük görünse de azd günlük iş akışından çok fazla sürtünme kaldıran değişikliklerden biri. Hook’lar için çok dilli destek şu anda kullanılabilir — resmi gönderinde tam belgelere ulaşabilirsiniz.
