Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu öğretici, ASP.NET Core uygulamasında dinamik yapılandırma güncelleştirmelerini nasıl etkinleştirebileceğinizi gösterir. Hızlı başlangıç kılavuzlarında sunulan web uygulaması üzerine inşa eder. Uygulamanız, yerleşik yapılandırma önbelleğe alma ve yenileme özellikleri için Uygulama Yapılandırması sağlayıcı kitaplığından yararlanacaktır. Devam etmeden önce Uygulama Yapılandırması ile ASP.NET Core uygulaması oluşturma işlemini tamamlayın.
Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:
- Uygulamanızı bir Uygulama Yapılandırması deposundaki değişikliklere yanıt olarak yapılandırmasını güncelleştirecek şekilde ayarlayın.
- Uygulamanıza en son yapılandırmayı ekleme.
Önkoşullar
Hızlı başlangıcı tamamlayın: Uygulama Yapılandırması ile ASP.NET Core uygulaması oluşturma.
Uygulama Yapılandırması'dan verileri yeniden yükleme
Program.cs açın ve hızlı başlangıç sırasında eklediğiniz yöntemi güncelleştirin
AddAzureAppConfiguration. Microsoft Entra ID (önerilen) veya bir bağlantı dizesi kullanarak Uygulama Yapılandırmasına bağlanabilirsiniz. Aşağıdaki kod parçacığında Microsoft Entra Id kullanımı gösterilmektedir.Kimlik doğrulamak için
DefaultAzureCredentialöğesini Uygulama Yapılandırması deponuzda kullanırsınız. Önkoşullarda listelenen hızlı başlangıcı tamamlarken, kimlik bilgilerinizi Uygulama Yapılandırması Veri Okuyucusu rolüne atamıştınız.// Load configuration from Azure App Configuration builder.Configuration.AddAzureAppConfiguration(options => { options.Connect(new Uri(endpoint), new DefaultAzureCredential()) // Load all keys that start with `TestApp:` and have no label. .Select("TestApp:*", LabelFilter.Null) // Reload configuration if any selected key-values have changed. .ConfigureRefresh(refreshOptions => refreshOptions.RegisterAll()); });Selectyöntemi, anahtar adı TestApp: ile başlayan ve etiketi olmayan tüm anahtar değerlerini yüklemek için kullanılır. Farklı ön eklere veya etiketlere sahip yapılandırmaları yüklemek için yöntemini birden çok kez çağırabilirsinizSelect. Bir Uygulama Yapılandırması deponuzu birden çok uygulamayla paylaşıyorsanız bu yaklaşım, mağazanızdan her şeyi yüklemek yerine yapılandırmanın yalnızca geçerli uygulamanızla ilgili yüklenmesine yardımcı olur.ConfigureRefreshyönteminin içinde, seçilen anahtar-değerlerden herhangi birinde (RegisterAllile başlayan ve etiketi olmayanlar) herhangi bir değişiklik algılandığında Uygulama Yapılandırma sağlayıcısına yapılandırmanın tamamını yeniden yüklemesini bildirmek için yöntemini çağırırsınız. Yapılandırma değişikliklerini izleme hakkında daha fazla bilgi için bkz. Yapılandırma yenileme için en iyi yöntemler.İpucu
Yapılandırma yenilemeleri arasındaki en düşük süreyi belirtmek için yöntemine bir çağrı
refreshOptions.SetRefreshIntervalekleyebilirsiniz. Bu örnekte varsayılan 30 saniye değerini kullanırsınız. Uygulama Yapılandırması deponuza yapılan istek sayısını azaltmanız gerekiyorsa daha yüksek bir değere ayarlayın.uygulamanızın hizmet koleksiyonuna Azure Uygulaması Yapılandırma ara yazılımı ekleyin.
Program.cs aşağıdaki kodla güncelleştirin.
// Existing code in Program.cs // ... ... builder.Services.AddRazorPages(); // Add Azure App Configuration middleware to the container of services. builder.Services.AddAzureAppConfiguration(); // Bind configuration "TestApp:Settings" section to the Settings object builder.Services.Configure<Settings>(builder.Configuration.GetSection("TestApp:Settings")); var app = builder.Build(); // The rest of existing code in program.cs // ... ...yöntemini çağırın
UseAzureAppConfiguration. Uygulamanızın yapılandırmayı sizin yerinize otomatik olarak güncelleştirmek için Uygulama Yapılandırması ara yazılımını kullanmasını sağlar.Program.cs aşağıdaki kodla güncelleştirin.
// Existing code in Program.cs // ... ... var app = builder.Build(); if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Error"); app.UseHsts(); } // Use Azure App Configuration middleware for dynamic configuration refresh. app.UseAzureAppConfiguration(); // The rest of existing code in program.cs // ... ...
Uygulamanızı, hızlı başlangıç sırasında ASP.NET Core'daki seçenekler düzenini kullanacak şekilde ayarladınız. Uygulamanızın temel yapılandırması Uygulama Yapılandırması'ndan güncellendiğinde, Settings ile elde edilen güçlü tip IOptionsSnapshot<T> nesneniz otomatik olarak güncellenir. Uygulama başlatıldıktan sonra yapılandırma verilerini okumadığından dinamik yapılandırma güncelleştirmesi isteniyorsa kullanmamanız IOptions<T> gerektiğini unutmayın.
İstek temelli yapılandırma yenilemesi
Yapılandırma yenilemesi, web uygulamanıza gelen istekler tarafından tetiklenir. Uygulamanız boşta olduğunda yenileme gerçekleşmez. Uygulamanız etkin olduğunda, Uygulama Yapılandırma ara yazılımı, ConfigureRefresh çağrısında yenilemek amacıyla kaydettiğiniz anahtarları izler. Ara yazılım, uygulamanıza gelen her istekte tetikleniyor. Ancak ara yazılım yalnızca ayarladığınız yenileme aralığı geçtiğinde Uygulama Yapılandırması'ndaki değeri denetlemek için istekler gönderir.
- Değişiklik algılama için Uygulama Yapılandırması isteği başarısız olursa uygulamanız önbelleğe alınmış yapılandırmayı kullanmaya devam eder. Uygulamanıza yeni gelen istekler olduğunda, değişiklikleri denetlemeye yönelik yeni girişimler düzenli aralıklarla yapılır.
- Yapılandırma yenilemesi, uygulamanızın gelen isteklerinin işlenmesiyle zaman uyumsuz olarak gerçekleşir. Yenilemeyi tetikleyen gelen isteği engellemez veya yavaşlatmaz. Yenilemeyi tetikleyen istek güncelleştirilmiş yapılandırma değerlerini alamayabilir, ancak sonraki istekler yeni yapılandırma değerleri alır.
- Ara yazılımın tetiklendiğinden emin olmak için,
app.UseAzureAppConfiguration()yöntemini başka bir ara yazılımın uygulamanızda atlamayacağından emin olmak amacıyla istek işlem hattınızda uygun olan en erken zamanda çağırın.
Uygulamayı yerel olarak derleme ve çalıştırma
.NET CLI kullanarak uygulamayı derlemek için komut kabuğunda aşağıdaki komutu çalıştırın:
dotnet buildDerleme başarıyla tamamlandıktan sonra, web uygulamasını yerel olarak çalıştırmak için aşağıdaki komutu çalıştırın:
dotnet runBir tarayıcı penceresi açın ve çıkışta gösterilen URL'ye
dotnet rungidin.
Azure Portal’ında oturum açın. Tüm kaynaklar'ı seçin ve hızlı başlangıçta oluşturduğunuz Uygulama Yapılandırması depoyu seçin.
Yapılandırma gezgini'ni seçin ve aşağıdaki anahtarların değerlerini güncelleştirin.
Anahtar Değer TestApp:Ayarlar:BackgroundColor yeşil TestApp:Ayarlar:FontColor açık gri TestApp:Ayarlar:İleti Azure Uygulaması Yapılandırmasından veriler - artık canlı güncelleştirmelerle! Tarayıcıyı birkaç kez yenileyin. Yenileme aralığı 30 saniye sonra geçtiğinde sayfa güncelleştirilmiş içerikle gösterilir.
Günlüğe kaydetme ve izleme
Günlükler yapılandırma yenilemesi sonrasında çıkarılır ve Uygulama Yapılandırması deponuzdan alınan anahtar değerleri ve uygulamanızda yapılan yapılandırma değişiklikleri hakkında ayrıntılı bilgiler içerir.
ILoggerFactoryvarsayılan bir değer,services.AddAzureAppConfiguration()çağrıldığında otomatik olarak eklenir. Uygulama Yapılandırması sağlayıcısı, buILoggerFactorykullanarakILoggerörneği oluşturur ve bu örnek bu günlükleri çıkış olarak verir. ASP.NET Core varsayılan olarak günlüğe kaydetme için kullanırILogger, bu nedenle Uygulama Yapılandırması sağlayıcısı için günlüğe kaydetmeyi etkinleştirmek için ek kod değişiklikleri yapmanız gerekmez.Günlükler farklı kayıt seviyelerinde üretilir. Varsayılan düzey:
Information.Günlük Düzeyi Açıklama Hata Giderme Günlükler, uygulamanızın Uygulama Yapılandırması deponuzdan gelen değişiklikler için izlediği anahtar-değerlerin anahtarını ve etiketini içerir. Bilgiler ayrıca anahtar-değerin uygulamanızın zaten yüklemiş olduğu değerle karşılaştırıldığında değişip değişmediğini de içerir. Yapılandırma değişikliği beklendiği gibi gerçekleşmediyse uygulamanızın sorunlarını gidermek için günlükleri bu düzeyde etkinleştirin. Bilgiler Günlükler, yapılandırma yenilemesi sırasında güncelleştirilen yapılandırma ayarlarının anahtarlarını içerir. Hassas verilerin sızmasını önlemek için yapılandırma ayarlarının değerleri günlükten atlanır. Uygulamanızın beklenen yapılandırma değişikliklerini aldığından emin olmak için günlükleri bu düzeyde izleyebilirsiniz. Uyarı Günlükler, yapılandırma yenilemesi sırasında oluşan hataları ve özel durumları içerir. Yapılandırma sağlayıcısı önbelleğe alınan verileri kullanmaya devam edeceğinden ve sonraki seferde yapılandırmayı yenilemeye çalışacağından, ara sıra meydana gelen durumlar göz ardı edilebilir. Olası sorunları gösterebilecek yinelenen uyarılar için bu düzeydeki günlükleri izleyebilirsiniz. Örneğin, bağlantı dizesi döndürdünüz ancak uygulamanızı güncelleştirmeyi unuttunuz. Debugkayıt düzeyinde günlüğe kaydetmeyi etkinleştirmek için aşağıdaki örneğiappsettings.jsondosyanıza ekleyebilirsiniz. Bu örnek diğer tüm günlük düzeyleri için de geçerlidir."Logging": { "LogLevel": { "Microsoft.Extensions.Configuration.AzureAppConfiguration": "Debug" } }Günlük kategorisi
Microsoft.Extensions.Configuration.AzureAppConfiguration.Refresholup her günlüğün öncesinde görünür. Her günlük düzeyinde bazı örnek günlükler aşağıda verilmiştir:dbug: Microsoft.Extensions.Configuration.AzureAppConfiguration.Refresh[0] Key-value read from App Configuration. Change:'Modified' Key:'ExampleKey' Label:'ExampleLabel' Endpoint:'https://examplestore.azconfig.io' info: Microsoft.Extensions.Configuration.AzureAppConfiguration.Refresh[0] Setting updated. Key:'ExampleKey' warn: Microsoft.Extensions.Configuration.AzureAppConfiguration.Refresh[0] A refresh operation failed while resolving a Key Vault reference. Key vault error. ErrorCode:'SecretNotFound' Key:'ExampleKey' Label:'ExampleLabel' Etag:'6LaqgBQM9C_Do2XyZa2gAIfj_ArpT52-xWwDSLb2hDo' SecretIdentifier:'https://examplevault.vault.azure.net/secrets/ExampleSecret'
Kullanmak ILogger , ASP.NET uygulamalarında tercih edilen yöntemdir ve bir ILoggerFactory örneği mevcutsa günlüğe kaydetme kaynağı olarak öncelikli olarak kullanılır. Ancak, kullanılamıyorsaILoggerFactory, günlükler alternatif olarak .NET Core uygulamalarına yönelik yönergeler aracılığıyla etkinleştirilebilir ve yapılandırılabilir. Daha fazla bilgi için bkz . .NET Core ve ASP.NET Core'da oturum açma.
Not
Aşağıdaki paketlerden herhangi birinin 6.0.0 veya daha sonraki bir sürümünü kullanıyorsanız günlük kaydı yapılabilir.
Microsoft.Extensions.Configuration.AzureAppConfigurationMicrosoft.Azure.AppConfiguration.AspNetCoreMicrosoft.Azure.AppConfiguration.Functions.Worker
Kaynakları temizleme
Bu makalede oluşturulan kaynakları kullanmaya devam etmek istemiyorsanız ücretlerden kaçınmak için burada oluşturduğunuz kaynak grubunu silin.
Önemli
Silinen kaynak grupları geri alınamaz. Kaynak grubu ve içindeki tüm kaynaklar kalıcı olarak silinir. Yanlış kaynak grubunu veya kaynakları yanlışlıkla silmediğinizden emin olun. Bu makalenin kaynaklarını, saklamak istediğiniz diğer kaynakları içeren bir kaynak grubu içinde oluşturduysanız, kaynak grubunu silmek yerine her kaynağı ilgili bölmeden tek tek silin.
- Azure portalında oturum açın ve Kaynak grupları'nı seçin.
- Ada göre filtrele kutusuna kaynak grubunuzun adını girin.
- Genel bir bakış görmek için sonuç listesinde kaynak grubu adını seçin.
- Kaynak grubunu sil'i seçin.
- Kaynak grubunun silinmesini onaylamanız istenir. Onaylamak için kaynak grubunuzun adını girin ve Sil'i seçin.
Birkaç dakika sonra kaynak grubu ve tüm kaynakları silinir.
Sonraki adımlar
Bu öğreticide, ASP.NET Core web uygulamanızı Uygulama Yapılandırması'ndan yapılandırma ayarlarını dinamik olarak yenilemek üzere etkinleştirdiniz. Uygulama Yapılandırması erişimini kolaylaştırmak için Azure tarafından yönetilen kimlik kullanmayı öğrenmek için sonraki öğreticiye geçin.