Terminalde JSON Sihirbazlığı: Azure Developer CLI’de JMESPath Desteğiyle Hayat Kolaylaşıyor!
JSON Çorbasında Boğulmaya Son: Neden JMESPath?
Şunu kabul etmek lazım; terminali açtığında ve eline geçen ilk JSON çıktıda havlu atan sadece sen değilsin. En çok da bulut yönetimiyle uğraşıyorsan, çıkan veri sanki “denk gelmişken gömül” diyor (ben de ilk duyduğumda şaşırmıştım). Kendi başıma çok yaşadım: azd ile alınan dataya bakarken gözümde şimşekler çakıyor — nereye bakacağımı şaşırıyorum bazen! Hani “Ya, acaba kolay yolu var mı?” diye soruyorsun kendine… Neyse işte; tam burada JMESPath’ın olayı devreye giriyor – bir anda “bulamadım” derdi ortadan kalkıyor!

Açıkçası,
Peki ya bu JMESPath neyin nesi? Duymayanlar için kısa bir özet patlatayım hemen: JSON yapısında gezinebilmeni sağlayan bol filtreli, esnek. -inandırıcı bulmasam da söylüyorum- güçlü bir sorgu dili. AWS CLI tarafında yıllardır vardı mesela (kıskandıysan normal),. Azure Developer CLI (azd)’ye yeni geldi sayılır. Geçen ay gerçek ortamda bir müşterinin otuz farklı environment’ından yalnızca default olanı seçmem gerekiyordu — jq ile iki takla atıyordum eskiden; şimdi ise tek bayrak yeterli oluyor diyebilirim.
--query Bayrağıyla Terminalde Data Avcılığı
Bilen Bilir: Otomasyonun Kalbi Doğrudan Çıktıda Saklıdır
Otomasyonsuz duramayanlardan mısın? Ben şahsen script yazmadan yaşayamıyorum galiba… Artık azd’nin “-o json –query” kombinasyonu hayat kurtarıyor — hem de hiç kasmaya gerek yok! Mesela environment isimleri lazım dedin ya; JSON veriyi alıp başka programdan geçirmene aslında gerek yok artık.
JMESPath desteği azd 1.23.4 ve sonrası sürümlerde bulunuyor! Senden düşük versiynu çıkaramazsın yani.
- Sadece ihtiyacın olan alan:
azd config show -o json --query "template.sources"Emir verdikten sonra platforma ait sadeleşmiş bir çıktı geliyor:
{ "awesome-azd": { "key": "awesome-azd", "location": "https://aka.ms/awesome-azd/templates.json", "name": "Awesome AZD", "type": "awesome-azd" } }Devasa JSON çöplüklerinde boğulanlar bilir — sadece asıl merak ettiğin bölümü net alıyorsun burdan.
- Sık kullandığım automation trick’i:
Kendime not gibi davranırım bazen — varsayılan environment adını shell’e almak istersen:ENV_NAME=$(azd env list -o json --query "[?IsDefault].Name | [0]")Koy pipeline’a — bitti gitti!
Yani sihir istiyorsan buyur terminale! Şimdi dürüst olayım… Bu tarz yetenek açıkçası AWS dünyasında bayadır vardı zaten. Azure’da yeni yeni kabına sığmaz oldu diyebilirim (Allah daha da versin). Mevzunun keyfi şurada ki zincir tamamlanmış hissi veriyor insana!
Kendi Deneyimlerimle JMESPath’in İncelikleri ve Tuzakları
Açıkçası Her Şey Masal Gibi Değil… Pratikte Karşılaştıklarım:
Geçen gün canlıdaki garip bir authentication mesajını hızlıca çekmem gerekti o telaşta. Açık konuşayım önceden koca log’u indirmekten üşengeçlik yüzünden işi uzatırdım… Şimdi ise:
azd auth token -o json --query "data.message"
Bingo!
“\nERROR: not logged in, run `azd auth login` to login\n”
Tabii şu unutulmamalı— çok katmanlı nested yapılarda yanlış tırnaklarla veya { köşe parantezi } karmasıyla arada kafanı duvara vurabilirsin (neredeyse kod yazacağıma CSV export edesim geliyordu!). Bir de eski azd komutlarında her şey daha entegre çalışmıyor olabilir; örneğin komuttan dönen output gerçekten JSON mu diye kontrol etmeden umuda güvenip ilerleme…
Gerçekten bazısı dümdüz metinle tokatlıyor insanı!

Peki Ya Dezavantajları ve İpuçları?
Dürüst anlatımlar önemli bence… Evet kulağa cool geliyor ama her şey yolunda mı gidiyor dersiniz?
- Karmaşık Sorgularda Kafa Karışıklığı:
Birbirinin içine geçmiş data varsa ilk başlarda “Eyvah nerede yanlış yaptım?” sendromu kaçınılmaz oluyor. - Dökümansız Alanlar:
Mesela bazı kendi çıkardığın custom çıktılarda hangi property nerde bitiyor tahmin zor! Durup “Buraya hangi anahtar düşüyor?” demişliğim çoktur. - Sürüm Uyumluluğu:
Aklınızda olsun — script paylaşıyorsan kesinlikle önce azd versiyonunu kontrol etsin kullanıcılar (aksi halde niye hata verdiğini saatlerce sorgularsınız). - Kavrayana Kadar Zaman Kaybı:
Söylemesi ayıp hâlâ ben bile dönüp jmespath sitesini kurcalarım . Kırıksız kod yoktur sonuçta…
JMESPath’in fonksiyonlarına ufaktan göz atmayı ihmal etmeyin! Filtreleme ([?]), haritalama ([].alanAdı) veya pipe kullanmak mümkün – yavaş ilerleyin daha kolay öğrenirsiniz.
Küçük hedeflerle başlayın derim.
Büyük toplamlar küçük hamlelerden çıkar…
(Klişe oldu ama doğru.)
Bence deneyimle sabit; özellikle CI/CD akışlarında yahut Azure Developer CLI’de Şubat 2026 Bombaları’nda anlattığım gibi mizahi dertlerin olduğu yerlerde kodu zayıf halkası olmadan dönüştürmek büyük nimet (inanın bana) (Ben hâlâ ara sıra açarım).

Birkaç Son Söz & Geleceğe Kısa Bakış…
Laf lafı açtı tabii ama eninde sonunda şuna bağlayacağım konuyu:
JMESPath desteğiyle birlikte azd sadece geliştiricilerin panel butonu değil bence,
aynı zamanda otomasyon bağımlılarının sabah kahvesi!
Neden derseniz;
artık kompleks yapıların altında kaybolmadan iş akışı rahatlatılıyor,
ancak pratikte biraz kafa patlatmanız şart,
aksi durumda gene kaybolmak garanti :)
Gerçekten.
Bana sorarsanız;
En sevdiğim yönü ne biliyor musunuz:
Yan araçlarla oyalanmadan
terminalden ihtiyaç duyduğun spesifik sonucu nokta atışı çekebiliyorsun artık.
Farklı ekiplerle çalışırken herkes kendi query’sini şekillendirirse işler su gibi akar…
Sen hangi CLI’da böyle yenilik görmek isterdin?
Veya seni en son hangi çıktı sinirlendirdi?
Bence aşağıya yazalım tartışalım hani…
Kaynak isteyenler için hazır link bıraktım:
Azure Developer CLI’de Şubat 2026 Bombaları .
Sorunuz olsa DM’ye de beklerim 😊
Güncel Azure gelişmelerinden anlık haberdar olmak istiyorsan takipten ayrılmayın derim…
(Kapatmadan önce not düşeyim.)
Yani yollar açık — dene yanıl paylaş!
Özet bu…
Kaynak: JMESPath support comes to azd JSON output
İçeriği paylaş:







Yorum gönder