az webapp deploy’da Zenginleştirilmiş Hata Çıktıları

az webapp deploy başarısız olduğunda, Linux App Service için --enriched-errors anahtarı hata kodu, dağıtım bağlamı, ham hata ve önerilen çözümleri CLI çıktısında toplu verir. Böylece log/portal aramadan tanılama hızlanır.

Azure App Service üzerinde yapılan dağıtımlar başarısız olduğunda, dağıtım API’sinin döndürdüğü hata mesajları çoğu zaman sorunun kaynağını ya da atılması gereken adımları net biçimde ortaya koymuyor. Bu belirsizlik, özellikle Linux üzerinde çalışan App Service uygulamalarına yapılan yayınlarda geliştiricileri fazladan log incelemesine ve deneme yanılmayla ilerlemeye itiyor. Azure App Service ekibi bu deneyimi iyileştirmek için az webapp deploy komutuna yeni bir anahtar ekledi: --enriched-errors.

–enriched-errors ne işe yarıyor?

Yeni eklenen --enriched-errors true anahtarı, Linux için Azure App Service’e yapılan dağıtımlarda başarısız olan işlemlere ilişkin bağlam açısından zenginleştirilmiş tanılama bilgilerini doğrudan Azure CLI çıktısında gösteriyor. Böylece hatayı yorumlamak için ayrı log dosyalarına ya da portal ekranlarına gitmek gerekmiyor; ilgili bilgiler dağıtım komutunun çıktısında toplu halde sunuluyor.

Zenginleştirilmiş çıktıda şu bilgiler yer alabiliyor:

  • Bir hata kodu (error code)
  • Dağıtım bağlamı (deployment context)
  • Ham hata mesajı (raw error)
  • Önerilen çözümler (suggested fixes)
  • GitHub Copilot ile birlikte kullanabileceğiniz hazır bir prompt

Anahtar varsayılan olarak devre dışı geliyor; mevcut çıktı davranışı korunuyor. Zenginleştirilmiş bilgileri görmek isteyen kullanıcıların dağıtım komutunda bu bayrağı açıkça etkinleştirmesi gerekiyor.

Komutun kullanımı

Zenginleştirilmiş hataları etkinleştirmek için mevcut az webapp deploy komutuna --enriched-errors true parametresini eklemek yeterli. Genel kullanım şöyle:

az webapp deploy \
--resource-group <resource-group-name> \
--name <app-name> \
--src-path <path-to-package> \
--enriched-errors true

Burada kaynak grubu adı, uygulama adı ve dağıtılacak paketin yolu her zamanki gibi belirtiliyor. Tek fark, komutun sonuna eklenen zenginleştirilmiş hata anahtarı.

Örnek bir hata çıktısı

Zenginleştirilmiş hata modu açıkken başarısız bir dağıtım şu tarzda bir çıktı üretebiliyor:

Error Code  : ArtifactStackMismatch
Stage       : Deployment
Runtime     : DOTNETCORE|9.0
Deploy Type : WarDeploy
Kudu Status : 400
Raw Error:
Artifact type = 'War' cannot be deployed to stack = 'DOTNETCORE'.
Suggested Fixes:
- Ensure the artifact type matches the app's runtime stack
- Check the current linuxFxVersion
- Update the runtime stack if needed

Bu örnekte hata kodu, dağıtımın hangi aşamada başarısız olduğu, hedef runtime, kullanılan dağıtım türü ve Kudu’nun döndürdüğü HTTP durum kodu bir arada görülüyor. Ham hata mesajı, sorunun WAR türünde bir artefaktın DOTNETCORE stack’ine dağıtılmaya çalışılmasından kaynaklandığını doğrudan söylüyor. Önerilen çözümler bölümünde ise artefakt türünün uygulamanın runtime yığınıyla eşleştirilmesi, mevcut linuxFxVersion değerinin kontrol edilmesi ve gerekirse runtime yığınının güncellenmesi öneriliyor.

Hangi durumlarda daha net bir tanı sağlıyor?

Zenginleştirilmiş çıktılar sayesinde başarısızlığın kökeninin şunlardan hangisi olduğunu ayırt etmek kolaylaşıyor:

  • Artefakt türü ile runtime yığını arasındaki uyumsuzluklar
  • Geçersiz bir dağıtım yolu (deployment path) kullanımı
  • Zorunlu parametrelerin eksik verilmesi
  • WEBSITE_RUN_FROM_PACKAGE gibi ayarlardan doğan yapılandırma çatışmaları

Bu tür durumlar klasik hata mesajlarında genellikle tek satırlık bir açıklamaya sıkışıyor; zenginleştirilmiş modda ise daha yapılandırılmış biçimde raporlandığından, sorunun kaynağını izole etmek ve çözüm adımlarını belirlemek kolaylaşıyor.

GitHub Copilot ile birlikte kullanım

Zenginleştirilmiş çıktının bir başka pratik yönü, GitHub Copilot’a devredilmek üzere hazırlanmış bir prompt içermesi. Çıktıda yer alan tam hata detaylarını aşağıdaki prompt ile birlikte Copilot’a yapıştırarak daha spesifik yönlendirmeler alabilirsiniz:

Why did my Linux App Service deployment fail and how do I fix it?

Bu yaklaşım, dağıtım yapılandırmanıza ve karşılaşılan hataya özgü, bağlama duyarlı öneriler almaya yardımcı oluyor. Hata çıktısını manuel yorumlamak yerine, Copilot’un elinizdeki tanılama bilgilerini işleyerek yol göstermesini sağlayabiliyorsunuz.

Özet

--enriched-errors anahtarı, Azure CLI üzerinden Linux için Azure App Service’e dağıtım yapan geliştiricilere hata kodu, dağıtım bağlamı, ham hata, önerilen düzeltmeler ve Copilot’a hazır bir prompt içeren, çok daha eyleme dönük bir hata çıktısı sunuyor. Varsayılan olarak kapalı olduğundan mevcut senaryoları etkilemiyor; komuta eklendiğinde ise hata ayıklama sürecini belirgin biçimde hızlandırabiliyor. App Service for Linux üzerinde az webapp deploy kullanan ekipler için, bir sonraki başarısız dağıtımda denemeye değer bir seçenek.

Kaynaklar ve İleri Okuma

Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
Aşkın KILIÇ

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

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

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

Haftalık Bülten

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

3 Yorum

  1. Tam da geçen hafta App Service dağıtımında hata alıp log aramakla zaman kaybetmiştim, bu özelliği bilseydim çok işime yarardı. –enriched-errors anahtarını bir sonraki deployment’ta deneyeceğim, özellikle “önerilen çözümler” kısmı ne kadar işe yarıyor merak ediyorum.

  2. Tam ihtiyaç duyduğum bir şeydi bu, dağıtım hatalarında log’lar arasında kaybolmak gerçekten can sıkıcıydı. –enriched-errors anahtarını bir sonraki deploy’da mutlaka deneyeceğim. Önerilen çözümlerin ne kadar işe yaradığını merak ediyorum açıkçası.

Yoruma kapalı.

✉

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
Kategoriler
Ara
Paylaş
WhatsApp
İçindekiler
← GitHub Stacked Pull Requests P...
SQL MCP Server ile Kullanıcı K... →
📩

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.