İçeriğe atla
Şimdi yükleniyor
  • Anasayfa
  • Azure & Bulut
    • Microsoft Azure
    • Bulut Altyapı
    • Microsoft 365
  • Yazılım
    • DevOps
    • Geliştirici Araçları
    • Konteyner & K8s
  • AI & Veri
    • Yapay Zeka
    • Veri & Analitik
  • Güvenlik
    • Güvenlik & Kimlik
    • Kurumsal Teknoloji
  • Hakkımda
    • İletişim
×
  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka
  • Başlangıç
  • DevOps
  • azd Hook’larını Python, TypeScript, .NET ile Yazın
Bulut Altyapı DevOps Geliştirici Araçları .NET, azd hook, Azure Developer CLI, deployment pipeline, DevOps, Python, TypeScript A.KILIÇ 23/04/2026 3 Yorumlar

azd Hook’larını Python, TypeScript, .NET ile Yazın

azd Hook'larını Python, TypeScript, .NET ile Yazın
Ana Sayfa › Bulut Altyapı › azd Hook’larını Python, TypeScript, .NET ile Yazın
⏱️ 11 dk okuma📅 23 Nisan 2026🔄 Güncelleme: 15 Temmuz 2026👁️ görüntülenme

Şahsen, Geçen hafta bir müşteride, finans tarafında çalışan epey kalabalık bir ekiple, azd ile deployment pipeline’ı kuruyorduk (ben de ilk duyduğumda şaşırmıştım). Hook yazma kısmına gelince ekipteki Python geliştiricisi bir anda durdu ve, “Ben Bash bilmiyorum, bu hook’u nasıl yazacağım?” dedi. Haklıydı. Adam bütün gün Python yazıyor, sonra tek bir hook için Bash öğrenmeye kalkıyor; açık konuşayım, bu iş biraz ters dürüyor.

📋 İçindekiler

  1. Maliyet ve Performans: Kimse Konuşmuyor Ama…

    Herkes yeni özelliklere atlıyor da, performans tarafını pek kurcalamıyor (kendi tecrübem). Ben sorayım o zaman. Peki neden?

    İşin garibi, Hook’lar her azd komutu çalıştığında tetikleniyor. Yanı azd up dediğiniz anda preprovision, postprovision, postdeploy hook’ları sırayla devreye giriyor; sonra da her birinin kendi bağımlılık hazırlığı başlıyor (Python için venv açılıyor, JavaScript tarafında npm install koşuyor, bazen de ufak ufak başka işler çıkıyor), işte tam burada süre uzuyor.

    Bence, Kendi testlerimde şunu gördüm: basit bir Python hook’u ilk çalıştırmada yaklaşık 12 saniye sürüyor, sonraki çalıştırmalarda işe 2 saniye civarına düşüyor. TypeScript tarafı biraz daha ağır geliyor; ilk seferde 18 saniye civarı görüyorum (npm install ile tsx ayağa kalkana kadar bekliyorsunuz),.NET proje modunda işe build süresi projenin boyutuna göre değişiyor, yanı sabit bir sayı vermek zor.

    Kısa bir not düşeyim buraya.

    Enterprise CI/CD pipeline’ında bu süreler küçük görünse de can sıkabiliyor. Günde 50 deployment yapıyorsanız ve her deployment’a 30 saniye ekleniyorsa, ay sonunda ortaya saatler çıkıyor; açık konuşayım, ekip bunu ilk başta fark etmeyebiliyor ama fatura gelince tablo netleşiyor. Bütçe tarafı hassassa, hook bağımlılıklarını minimal tutun; mesela bir hook içine pandas koymayın, çoğu senaryoda sadece requests yetiyor olabilir.

    💡 Bilgi: Azure DevOps pipeline’larında azd hook’ları kullanıyorsanız, Microsoft-hosted agent’larda Python, Node.js ve.NET zaten yüklü geliyor. Ama self-hosted agent kullanıyorsanız bu runtime’ları kendiniz kurmanız gerekir. Bunu atlayan çok ekip gördüm.

    Pratik Uygulama: Nereden Başlamalı?

    Tamam, özellik netleşti. Peki yarın sabah ne yapacaksınız? (kendi tecrübem)

    İlk iş, mevcut Bash ve PowerShell hook’larını tek tek açıp bakın; hangisi gerçekten işe yarıyor, hangisi sadece yıllardır orada dürüyor, önü ayıklayın (ben olsam önce en basit olanı seçerim), çünkü hepsini aynı anda çevirmeye kalkınca iş biraz dağılıyor ve gereksiz yere kafa karıştırıyor.

    Sonra azure.yaml dosyanıza girin ve hook tanımlarını güncelleyin. Dosya uzantısını değiştirmeniz çoğu zaman yetiyor, azd de bunu genelde kendi kendine yakalıyor. Basit gibi dürüyor.

    Şahsen, Üçüncü adımda işi lokalde bırakmayın, CI/CD pipeline içinde de deneyin; çünkü yerelde çalışan bir hook, pipeline tarafında bambaşka bir sürpriz çıkarabiliyor (özellikle dosya yolları, ortam değişkenleri ve agent farkları yüzünden), yanı “bende çalıştı” cümlesi burada pek kurtarmıyor.

    Bir de şu detay var: Azure SDK Nisan 2026: Kritik Güvenlik Yaması ve Yenilikler yazısında anlattığım SDK güncellemelerini hook’larınızda kullanıyorsanız, versiyon uyumluluğunu mutlaka kontrol edin; eski SDK sürümleri yeni azd hook sistemiyle bazen garip hatalar veriyor, hani “neden şimdi patladı?” dedirten cinsten.

    Alternatif Yaklaşım: Bütçeniz Kısıtlıysa

    Açıkçası, Eğer henüz azd’ye geçmediyseniz. Bütçe tarafı sıkışıkse, hook’ları doğrudan Azure DevOps pipeline task’ları olarak da yazabilirsiniz. Aynı esnekliği vermiyor, açık konuşayım; ama sıfır ek maliyetle ilerliyorsunuz (küçük projelerde bu tercih gayet idare eder), üstelik bazen sırf sadelik için daha mantıklı bile olabiliyor.

    azd’nın hook sistemi daha düzenli geliyor bana, fakat “olmazsa olmaz” da değil. Hele bir de küçük ekiplerde önce çalışan çözümü kurup sonra iyileştirmek daha sağlıklı oluyor (eh, fena değil). Azure DevOps Server Nisan Yaması: Ne Geldi, Ne Yapmalı? yazısında DevOps tarafındaki güncel gelişmeleri bulabilirsiniz.

    Beklentim vs Gerçeklik

    Açık konuşayım: özellik fena değil, ama henüz tam oturmamış. Birkaç yerde insanın kaşı kalkıyor.

    Birincisi, hata mesajları baya zayıf. Hook içinde bir Python hatası patlayınca azd’nın döndürdüğü şey çoğu zaman “hook failed with exit code 1” gibi kuru bir satır oluyor; alttaki Python traceback’ını görmek için verbose mode açmanız gerekiyor, yanı sorun aslında orada dürüyor. Size ilk anda gösterilmiyor. Yeni başlayan biriyseniz, bu durum biraz sınır bozucu, hatta gereksiz yere vakit yediriyor.

    İkincisi, hook’lar arasında veri taşımak hâlâ uğraştırıyor. Preprovision hook’undan postprovision hook’una bir şey aktarmak istiyorsanız, ya ortam değişkenlerine yaslanıyorsunuz ya da dosya sistemiyle idare ediyorsunuz; iş görüyor. Pek zarif değil. Bence burada shared context objesi gibi daha temiz bir yol olabilirdi, çünkü şu anki yaklaşım biraz dolambaçlı kalıyor.

    Üçüncüsü — ve açıkçası beni en çok burası düşündürdü — hot reload yok. Hook’u değiştirip yeniden çalıştırdığınızda sistem her seferinde bağımlılıkları tekrar kontrol ediyor; küçük bir deneme yapacaksınız, hop bekliyorsunuz. Geliştirme aşamasında bu gerçekten yavaşlatıyor, insanın hevesi de biraz kırılıyor.

    Dürüst olmak gerekirse, Ama neyse, kağıt üstünde iyi bir adım bu. Pratikte işe biraz daha pişmesi lazım; şimdiye kadar gördüğüm kadarıyla birkaç versiyon sonra çok daha rahat kullanılacak hâle gelir diye düşünüyorum.

    Sıkça Sorulan Sorular

    azd hook’larında hangi diller destekleniyor?

    Bash ve PowerShell’e ek olarak artık Python, JavaScript, TypeScript ve.NET de destekleniyor. azd dosya uzantısına bakarak dili otomatik algılıyor (şaşırtıcı ama gerçek). Yanı çoğu durumda ekstra bir şey yapmanıza gerek yok (buna dikkat edin). Ama belirsiz bir durum varsa azure.yaml içinde kind alanıyla dili kendiniz belirtebilirsiniz.

    TypeScript hook’ları için tsconfig.json gerekiyor mu?

    Hayır, gerekmiyor. azd TypeScript dosyalarını npx tsx ile çalıştırıyor — ayrıca derleme adımı falan yok, tsconfig.json da istenmiyor. Aslında sadece bir package.json yeterli, bu kadar.

    .NET tek dosya modu hangi versiyondan itibaren çalışıyor?

    .NET 10. Üzeri sürümlerde tek bir.cs dosyasını doğrudan çalıştırabiliyorsunuz, hani proje dosyasına bile gerek kalmıyor. Ama daha eski.NET sürümlerindeyseniz.csproj dosyası hâlâ gerekiyor.

    Hook’lardaki bağımlılıklar her çalıştırmada yeniden mi kuruluyor?

    İlk seferinde evet — sanal ortam oluşturuluyor, bağımlılıklar kuruluyor. Sonrasında cache devreye giriyor, dolayısıyla — itiraz edebilirsiniz tabi — çok daha hızlı ilerliyor. Tecrübeme göre bu farkı özellikle büyük projelerde gerçekten hissediyorsunuz. Tabiî bağımlılık dosyası değişirse, mesela requirements.txt güncellediyseniz, yeniden kurulum yapılıyor.

    Mevcut Bash hook’larımı hemen değiştirmeli mıyım?

    Şöyle ki, Acil bir durum yok açıkçası — Bash ve PowerShell hook’ları sorunsuz çalışmaya devam ediyor (kendi tecrübem). Ama yeni bir hook yazacaksanız ya da mevcut olanları refactor edecekseniz, bence proje dilinize geçmek mantıklı. Hani sürekli dil değiştirmek zorunda kalmamak uzun vadede ciddi bir verimlilik artışı sağlıyor.

    Kaynaklar ve İleri Okuma

    Azure Developer CLI Extensibility — Resmî Dokümantasyon

    Write azd hooks in Python, JavaScript, TypeScript, or.NET — Azure SDK Blog

    Azure Developer CLI GitHub Repository

    Aşkın KILIÇ
    Aşkın KILIÇYazar

    20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

    AZ-305AZ-104AZ-500AZ-400DP-203AI-102

    İlgili Yazılar

    Evet" Demenin Maliyeti Değişti: Yeni Denge
    Evet" Demenin Maliyeti Değişti: Yeni Denge17 Tem 2026
    Copilot cloud agent ile Kırık Actions İşini Tek Tıkta Çözmek
    Copilot cloud agent ile Kırık Actions İşini Tek Tıkta Çözmek19 May 2026
    EWS Bildirimlerinden Microsoft Graph’a Geçiş: Sessiz Ama Büyük Değişim
    EWS Bildirimlerinden Microsoft Graph’a Geçiş: Sessiz Ama Büyük Değişim12 Haz 2026
    RDBMS'ten Cosmos DB'ye Geçiş: AI Asistanı Ne Kadar İşe Yarar?
    RDBMS'ten Cosmos DB'ye Geçiş: AI Asistanı Ne Kadar İşe Yarar?18 Haz 2026

    Bu içerik işinize yaradı mı?

    Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

    YouTube GitHub

    Haftalık Bülten

    Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

Etiket .NET azd hook Azure Developer CLI deployment pipeline DevOps Python TypeScript
A.KILIÇ

Microsoft Azure Çözüm Uzmanı | Bulut Bilişim, Yapay Zekâ, DevOps ve Kurumsal Güvenlik alanlarında 15+ yıl deneyim. Azure, Kubernetes, AI/ML ve modern altyapı mimarileri üzerine yazılar yazıyorum.

view all posts
Önceki yazı

.NET 10 Data Protection Güvenlik Açığı ve Acil Yama

Sonraki yazı

SELinux Volume Label Değişikliği: v1.37 Öncesi Hazırlık

İlginizi Çekebilir

Declarative Workflows 1.0: Ajan Orkestrasyonu Artık YAML'da
A.KILIÇ 0

Declarative Workflows 1.0: Ajan Orkestrasyonu Artık YAML’da

24/07/2026
Linear'da Copilot Cloud Agent Genel Kullanıma Açıldı
A.KILIÇ 0

Linear’da Copilot Cloud Agent Genel Kullanıma Açıldı

23/07/2026
Azure Dev/Test Avantajı: Visual Studio ile Bulutta Deneme
A.KILIÇ 0

Azure Dev/Test Avantajı: Visual Studio ile Bulutta Deneme

23/07/2026

3 comments

comments user
Aslı S. 23/04/2026 06:46

Sonunda bu özellik geldi, Bash’te hook yazmak bazen gerçekten can sıkıcı oluyordu. TypeScript ile yazabilmek özellikle frontend ağırlıklı ekipler için büyük kolaylık olacak, hemen deneyeceğim.

comments user
Oğuz L. 23/04/2026 15:22

Bash yazmak zorunda kalmadan Python ile hook yazabilmek gerçekten güzel bir gelişme, özellikle ekipte shell bilmeyen arkadaşlar için can kurtarıcı olacak. .NET desteği de eklenince artık hiçbir bahane kalmıyor sanırım.

comments user
Serkan D. 23/04/2026 19:22

Bash’te environment variable kontrolü yazmak her seferinde biraz eziyete dönüyordu, Python desteği gerçekten işe yarayacak. Peki mevcut hook’ları migrate etmek için özel bir araç var mı yoksa elle mi taşımak gerekiyor?

Yorumlar kapalı.

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • Declarative Workflows 1.0: Ajan Orkestrasyonu Artık YAML'da
    24/07/2026 Declarative Workflows 1.0: Ajan Orkestrasyonu Artık YAML’da
  • Linear'da Copilot Cloud Agent Genel Kullanıma Açıldı
    23/07/2026 Linear’da Copilot Cloud Agent Genel Kullanıma Açıldı
  • Azure Dev/Test Avantajı: Visual Studio ile Bulutta Deneme
    23/07/2026 Azure Dev/Test Avantajı: Visual Studio ile Bulutta Deneme
  • AI Ajanları Cosmos DB vNext Emülatörüyle Buluşuyor
    23/07/2026 AI Ajanları Cosmos DB vNext Emülatörüyle Buluşuyor
  • Pure Virtual C++ 2026 Yayında: Canlı Program ve Detaylar
    23/07/2026 Pure Virtual C++ 2026 Yayında: Canlı Program ve Detaylar
  • Veri Merkezi Güvenilirliği
    09/03/2026 Azure’da Kesintisiz Çalışma: Güvenilirlik ve Kurtarma
  • 2026-03-10_15-35-23
    10/03/2026 Microsoft 365 E7: Yapay Zeka ve Güvenlik Bir Arada
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • Kubernetes v1.36 Memory QoS: Katmanlı Bellek Koruması Geldi
    30/04/2026 Kubernetes v1.36 Memory QoS: Katmanlı Bellek Koruması Geldi
  • GitHub Copilot for Eclipse Açık Kaynağa Dönüyor: Neden Önemli?
    08/04/2026 GitHub Copilot for Eclipse Açık Kaynağa Dönüyor: Neden Önemli?
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • vcpkg'de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
    06/04/2026 vcpkg’de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler
    10/04/2026 Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler

SİZİN İÇİN DERLEDİK

Declarative Workflows 1.0: Ajan Orkestrasyonu Artık YAML'da
DevOps Geliştirici Araçları Microsoft Azure Yapay Zeka

Declarative Workflows 1.0: Ajan Orkestrasyonu Artık YAML’da

24/07/2026 A.KILIÇ
Linear'da Copilot Cloud Agent Genel Kullanıma Açıldı
Bulut Altyapı Geliştirici Araçları Yapay Zeka

Linear’da Copilot Cloud Agent Genel Kullanıma Açıldı

23/07/2026 A.KILIÇ
Azure Dev/Test Avantajı: Visual Studio ile Bulutta Deneme
Bulut Altyapı DevOps Geliştirici Araçları

Azure Dev/Test Avantajı: Visual Studio ile Bulutta Deneme

23/07/2026 A.KILIÇ
AI Ajanları Cosmos DB vNext Emülatörüyle Buluşuyor
Bulut Altyapı Geliştirici Araçları Yapay Zeka

AI Ajanları Cosmos DB vNext Emülatörüyle Buluşuyor

23/07/2026 A.KILIÇ
Pure Virtual C++ 2026 Yayında: Canlı Program ve Detaylar
Geliştirici Araçları Yapay Zeka

Pure Virtual C++ 2026 Yayında: Canlı Program ve Detaylar

23/07/2026 A.KILIÇ
Pure Virtual C++ 2026 Tamamlandı: Tüm Oturumlar Yayında
Geliştirici Araçları Microsoft 365 Yapay Zeka

Pure Virtual C++ 2026 Tamamlandı: Tüm Oturumlar Yayında

23/07/2026 A.KILIÇ
Copilot Etki Panosu: Kullanım Metriklerinde Yeni Dönem
Bulut Altyapı Geliştirici Araçları

Copilot Etki Panosu: Kullanım Metriklerinde Yeni Dönem

22/07/2026 A.KILIÇ
Azure DevOps Server Temmuz Yamaları: Kurulum ve Doğrulama
DevOps Microsoft Azure

Azure DevOps Server Temmuz Yamaları: Kurulum ve Doğrulama

22/07/2026 A.KILIÇ
Microsoft Agent Framework Harness Kararlı Sürümde Yayınlandı
Geliştirici Araçları Microsoft Azure Yapay Zeka

Microsoft Agent Framework Harness Kararlı Sürümde Yayınlandı

22/07/2026 A.KILIÇ
Azure Chaos Studio Workspaces ile Dayanıklılık Testi
DevOps Güvenlik & Kimlik Microsoft Azure

Azure Chaos Studio Workspaces ile Dayanıklılık Testi

22/07/2026 A.KILIÇ
GitHub Copilot Canvas ile Etkileşimli Deneyimler
Geliştirici Araçları Yapay Zeka

GitHub Copilot Canvas ile Etkileşimli Deneyimler

21/07/2026 A.KILIÇ
Gemini 3.6 Flash GitHub Copilot'ta Kullanıma Sunuldu
Geliştirici Araçları Yapay Zeka

Gemini 3.6 Flash GitHub Copilot’ta Kullanıma Sunuldu

21/07/2026 A.KILIÇ

Hakkımda

Aşkın KILIÇ

Microsoft Azure Çözüm Uzmanı. Bulut bilişim, yapay zekâ, DevOps ve kurumsal güvenlik üzerine yazılar yazıyorum.

Devamını Oku →

Kategoriler

  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka

Popüler Etiketler

AI ajanları Azure Azure Cosmos DB Azure Developer CLI Azure DevOps Azure Functions Azure OpenAI azure sdk Azure SQL açık kaynak bulut bilişim C++ CI/CD copilot Copilot CLI DevOps DevSecOps geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes Kurumsal geliştirme kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu Microsoft Agent Framework Microsoft Azure Microsoft Foundry OpenAI otomasyon performans Pull Request Python RAG SEO uyumlu verimlilik veri yönetimi Visual Studio VS Code yapay zeka yapay zeka ajanları Yazılım geliştirme
  • Gizlilik Politikası
  • Çerez Politikası
  • Kullanım Koşulları
  • Hakkımda
  • İletişim

© 2026 Aşkın KILIÇ | Tüm hakları saklıdır. | Powered By SpiceThemes

Çerez tercihleri Zorunlu çerezler sitenin çalışması için kullanılır. Analitik çerezler yalnız açık izninizden sonra Google Analytics ve Microsoft Clarity için etkinleştirilir. KVKK ve Çerez Politikası
✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Ana Sayfa
Kategoriler
💻 Geliştirici Araçları 301 yazı 🏗️ Bulut Altyapı 256 yazı 🤖 Yapay Zeka 218 yazı 🔧 DevOps 175 yazı ☁️ Microsoft Azure 169 yazı 🔒 Güvenlik & Kimlik 154 yazı 🏢 Kurumsal Teknoloji 64 yazı 📊 Veri & Analitik 55 yazı 🐳 Konteyner & Kubernetes 44 yazı 📧 Microsoft 365 19 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← .NET 10 Data Protection Güvenl...
    SELinux Volume Label Değişikli... →
    📩

    Gitmeden önce!

    Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

    🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

    📬 Haftalık bülten: Teknoloji + AI haberleri
    Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.
    GitHub RSS