1. Ana Sayfa
  2. Microsoft Azure

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

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

İlk bölümde Azure Portal üzerinden App Configuration servisi oluşturup, console uygulaması üzerinden konfigürasyon değerini çekmiştim. Ancak bu durumda değeri Azure Portal üzerinden değiştirirsem uygulamayı da yeniden başlatmam gerekecek. Bu çoğu (belki de her) zaman istediğimiz bir durum olmadığından, dinamik bir konfigürasyona ihtiyacımız var. Azure App Configuration, bize bu konuda 2 farklı seçenek sağlıyor.

  1. Poll model: Bu modelde konfigürasyon değerini aralıklarla servisten sorgulayarak bir güncelleme olduğunda yeni değeri alabiliyoruz.
  2. Push model: Bu modelde ise App Configuration Events kullanarak, event’leri Azure Event Grid‘e göndererek webhook, Azure Function ya da Service Bus topic kullanarak güncel değeri uygulamaya iletebiliyoruz.

Bu bölümde Poll model üzerinden bu işlemleri nasıl gerçekleştirebileceğimize basit bir console uygulaması üzerinden bakalım. Burada ilk bölümdeki örneğe ek olarak ConfigureRefresh methodu ile takip edeceğimiz değeri register edip, GetRefresher methodu ile IConfigurationRefresher tipindeki configurationRefresher değişkenini set ediyorum. Burada diğer önemli kısım ise poll işlemini yapacak olan TryRefreshAsync methodu, bunu da async olarak bir while döngüsü içerisine ekliyorum. Bu döngü içerisinde de 5 saniyelik aralıklarda bu methodu çağırarak bir değişiklik olup olmadığını kontrol ediyorum.

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Configuration.AzureAppConfiguration;

var builder = new ConfigurationBuilder();
IConfigurationRefresher configurationRefresher = null;

builder.AddAzureAppConfiguration(options =>
{
    options.Connect("Endpoint=https://mshowto-appconfig.azconfig.io;Id=***;Secret=***")
           .ConfigureRefresh(refresh => refresh.Register("mshowtoconsoleapp:settings:key1"));

    configurationRefresher = options.GetRefresher();
});

var config = builder.Build();

Task.Run(async () =>
{
    while (true)
    {
        Console.WriteLine($"Key1: {config["mshowtoconsoleapp:settings:key1"]}");

        await configurationRefresher.TryRefreshAsync();
        await Task.Delay(5000);
    }
}).Wait();

Uygulamayı dotnet run ile çalıştırdıktan sonra terminal ekranında mevcut key1 değeri olan mshowtoconsoleapp-val1 değerini görüyorum (Resim-2). Uygulamayı kapatmadan Azure Portal üzerinden bu değeri mshowtoconsoleapp-val2 olarak değiştirip kaydediyorum (Resim-1).

Resim-1

Terminal ekranında kısa bir süre sonra mshowtoconsoleapp-val2 değerini görebiliyorum (Resim-2).

Resim-2

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?
İlginizi Çekebilir

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