1. Ana Sayfa
  2. Microsoft Azure

Yazılım Geliştiriciler için Azure: Azure App Configuration – Bölüm 1

Yazılım Geliştiriciler için Azure: Azure App Configuration – Bölüm 1
0

Uygulamalarımızın olmazsa olmazlarından birisi de konfigürasyon, yani uygulama içerisinde kullandığımız bilgilerin parametrik hale getirilerek kaynak kodda bir değişiklik yapmadan ortama göre farklılıkları kolaylıkla değiştirebildiğimiz ve yönetebildiğimiz bir özellik. Bunu ister bir dosyada ister veri tabanında tutun, düzgün bir şekilde tasarlanmadığı takdirde sağlayacağı kolaylıklardan çok zorluk da çıkarabilir.

Azure üzerinde neden böyle bir servise ihtiyaç var sorusu aklınıza gelebilir. Azure servislerinde zaten konfigürasyon yapabileceğimiz alanlar mevcut, hatta özellikle hassas veriler için Azure Key Vault öneriliyor. Peki Azure App Configuration bize ne gibi avantajlar sağlıyor?

Günümüzde uygulamalar tek bir bileşenden oluşmadığı gibi, Azure üzerinde de tek bir serviste barındırılmıyor. Uygulamanın farklı kısımları için farklı servislerden faydalanabiliyoruz. İşte burada tek bir yerden konfigürasyonu yönetmek önemli bir avantaj sağlıyor. Azure App Configuration, Key Vault ‘a bir alternatif değil, tamamlayıcı bir servis olduğu için de yan yana kullanılan servisler olarak değerlendirebiliriz.

Resim-1

Azure Portal üzerinden oluşturma işlemleri artık her serviste olduğu gibi resource group, resource name, location ve pricing tier seçimi ile başlıyor (Resim-2).

Resim-2

Sonraki sekmede ise Networking ayarları yer alıyor (Resim-3). burada servise erişim ile ilgili Automatic, Disabled ve Enabled seçeneklerinden birini seçmenizi istetecek. Automatic seçeneğinde eğer private endpoint’iniz varsa public network erişimi otomatik olarak devre dışı kalıyor. Eğer private endpoint yoksa da otomatik olarak public network erişimi aktif hale geliyor. Her ikisini de kullanmak istiyorsanız Enabled seçeneğini seçmelisiniz.

Resim-3

Kaynağı oluşturma işlemi çok kısa bir sürede tamamlanıyor ve Resim-4‘te göreceğiniz gibi istek sayısı ve süresini takip edebileceğimiz bir Overview ekranı ile karşılaşıyoruz.

Resim-4

Pricing Tier seçimini Standard olarak yapmıştım. Buradaki farkları da Settings altında yer alan Scale up‘da da görebilir ve buradan eğer Free seçtiyseniz Standard olarak güncelleyebilirsiniz (Resim-5). Maalesef scale down seçeneği henüz bulunmuyor. Farklara da baktığımızda subscription başına düşen kaynak sayısı, storage miktarı, revizyon geçmişi, istek kotası, SLA, güvenlik ve en önemlisi ücret bilgilerini görebilirsiniz.

Resim-5

Operations altından Configuration explorer sekmesine giderek yeni bir konfigürasyon eklemek istiyorum. Tahmin edeceğiniz gibi burada key-value şeklinde, ya da girişte bahsettiğim gibi bir Key Vault reference olarak ekleyebiliyoruz (Resim-6).

Resim-6

Yeni bir key-value değeri oluşturalım. Burada farklı uygulamaları da kullanacağımı düşünerek <uygulama adı>:settings:<key adı> şeklinde bir isimlendirme yaptım. Label ve Content Type seçeneklerini de ihtiyaçlarınız doğrultusunda doldurabilirsiniz (Resim-7).

Resim-7

Oluşturma işlemi sorasında value değeri açık olarak görünmüyor (Resim-8), ancak ne olduğunu görmek için bu satırın en sağında yer alan menüden Edit seçeneği ile bu değeri görebilir ve değiştirebilirsiniz. Burada dikkat etmeniz gereken kısım Key ve Label değerlerini değiştiremiyorsunuz.

Resim-8

Şimdi de basit bir konsol uygulaması oluşturup Azure App Configuration servisimize bağlayalım. Bunun için ilk olarak konsol uygulamamıza ilgili Microsoft.Extensions.Configuration.AzureAppConfiguration paketini yüklememiz gerekiyor. Terminalden dotnet add package Microsoft.Extensions.Configuration.AzureAppConfiguration komutunu çalıştırıyorum (Resim-9).

Resim-9

Şimdi uygulamaya Azure App Configuration servisine bağlanması için gerekli connection string bilgisine ihtiyacım var. Bunu da Settings altında yer alan Access keys sekmesinden alabiliyorum (Resim-10).

Resim-10

Uygulama tarafına gelirsek, öncelikle yeni bir ConfigurationBuilder objesi oluşturup AddAzureAppConfiguration methoduna connection string bilgisini geçiyorum ve Build methodu ile config objesini hazır hale getiriyorum.

Örnekte bunu direkt olarak yazdım ama gerçekçi bir senaryoda bunun bir environment variable’dan okunması daha sağlıklı olacaktır.

using Microsoft.Extensions.Configuration;

var builder = new ConfigurationBuilder();
builder.AddAzureAppConfiguration("Endpoint=https://mshowto-appconfig.azconfig.io;Id=***;Secret=***");
var config = builder.Build();

Console.WriteLine($"Key1: {config["mshowtoconsoleapp:settings:key1"]}");

Son olarak da uygulamayı dotnet run ile çalıştırıp, Azure App Configuration üzerinde tanımladığım değeri okuduğunu görebiliyorum (Resim-11).

Resim-11

Bu konuyla ilgili sorularınızı http://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

Azure App Configuration documentation | Microsoft Docs

NuGet Gallery | Microsoft.Extensions.Configuration.AzureAppConfiguration 5.0.0

TAGs: Azure, Yazılım Geliştiriciler için Azure, App Configuration, Azure App Configuration, Configuration, Azure Key Vault, .NET, Console App

Bu İçeriğe Tepkin Ne Oldu?

Yazar Hakkında

Mert Yeter, lisans eğitimini Yıldız Teknik Üniversitesi'nde, yüksek lisans eğitimini ise Bahçeşehir Üniversitesi'nde tamamlamıştır. Yazılım dünyasına üniversitenin ilk yıllarında aldığı QBasic ile başlayan Mert, .NET ve SQL Server gibi Microsoft teknolojileri ile devam etmiş; yüksek lisans tezini ise Linux konusunda yapmıştır. Netaş ve Ziraat Teknoloji gibi sektörün önde gelen firmalarında C#, .NET, SQL Server, Cisco Contact Center ürünleri ve Linux üzerine çalışmış, bir çok firmaya da bu konularda danışmanlık vermiştir.

Yorum Yap