Azure Uygulaması Yapılandırması en iyi yöntemleri

Bu makalede, Azure Uygulaması Yapılandırması kullanırken sık kullanılan desenler ve en iyi yöntemler ele alınmaktadır.

Anahtar gruplandırmalar

Uygulama Yapılandırması anahtarları düzenlemek için iki seçenek sağlar:

  • Anahtar ön ekleri
  • Etiketler

Anahtarlarınızı gruplandırmak için bir veya her iki seçeneği kullanabilirsiniz.

Anahtar ön ekleri anahtarların başlangıç bölümleridir. Adlarında aynı ön eki kullanarak bir anahtar kümesini mantıksal olarak gruplandırabilirsiniz. Ön ekler, ad alanı oluşturmak için URL yoluna benzer şekilde /bir sınırlayıcı tarafından bağlanan birden çok bileşen içerebilir. Bu tür hiyerarşiler, birçok uygulama ve mikro hizmetin anahtarlarını tek bir Uygulama Yapılandırması deposunda depolarken kullanışlıdır.

Anahtarlar, uygulama kodunuzun ilgili ayarların değerlerini almak için başvurduğunu unutmayın. Anahtarlar değişmemelidir, aksi halde her seferinde kodunuzu değiştirmeniz gerekir.

Etiketler anahtarlardaki bir özniteliklerdir. Bir anahtarın çeşitlemelerini oluşturmak için kullanılırlar. Örneğin, bir anahtarın birden çok sürümüne etiket atayabilirsiniz. Sürüm bir yineleme, ortam veya başka bağlamsal bilgiler olabilir. Uygulamanız başka bir etiket belirterek tamamen farklı bir anahtar-değer kümesi isteyebilir. Sonuç olarak, tüm anahtar başvuruları kodunuzda değişmeden kalır.

Anahtar-değer bileşimleri

Uygulama Yapılandırması, onunla birlikte depolanan tüm anahtarları bağımsız varlıklar olarak ele alır. Uygulama Yapılandırması, anahtarlar arasındaki ilişkiyi çıkarsamaya veya hiyerarşilerine göre anahtar-değerleri devralmaya çalışmaz. Bununla birlikte, uygulama kodunuzda uygun yapılandırma yığınlamasıyla birlikte etiketleri kullanarak birden çok anahtar kümesini toplayabilirsiniz.

Bir örneğe göz atalım. Değeri geliştirme ortamına göre değişebilen Asset1 adlı bir ayarınız olduğunu varsayalım. Boş bir etiket ve "Geliştirme" adlı bir etiket ile "Asset1" adlı bir anahtar oluşturursunuz. İlk etikette Asset1 için varsayılan değeri ve ikincisinde de "Geliştirme" için belirli bir değer koyarsınız.

Kodunuzda, önce herhangi bir etiket olmadan anahtar-değerleri alırsınız ve ardından "Geliştirme" etiketiyle aynı anahtar-değer kümesini ikinci kez alırsınız. Değerleri ikinci kez aldığınızda, anahtarların önceki değerlerinin üzerine yazılır. .NET yapılandırma sistemi, birden çok yapılandırma veri kümesini üst üste "yığmanıza" olanak tanır. Birden fazla kümede bir anahtar varsa, anahtarı içeren son küme kullanılır. .NET gibi modern bir programlama çerçevesiyle, Uygulama Yapılandırması erişmek için yerel bir yapılandırma sağlayıcısı kullanıyorsanız bu yığınlama özelliğini ücretsiz olarak elde edersiniz. Aşağıdaki kod parçacığı bir .NET uygulamasında yığın oluşturmayı nasıl uygulayabileceğinizi gösterir:

// Augment the ConfigurationBuilder with Azure App Configuration
// Pull the connection string from an environment variable
configBuilder.AddAzureAppConfiguration(options => {
    options.Connect(configuration["connection_string"])
           .Select(KeyFilter.Any, LabelFilter.Null)
           .Select(KeyFilter.Any, "Development");
});

Farklı ortamlar için farklı yapılandırmaları etkinleştirmek için etiketleri kullanmak tam bir örnek sağlar.

Dış verilere başvurular

Uygulama Yapılandırması, normalde yapılandırma dosyalarında veya ortam değişkenlerinde kaydedecekleri yapılandırma verilerini depolamak için tasarlanmıştır. Ancak, bazı veri türleri diğer kaynaklarda yer almaya daha uygun olabilir. Örneğin, Key Vault'ta gizli dizileri, Azure Depolama'deki dosyaları, Microsoft Entra gruplarındaki üyelik bilgilerini veya veritabanındaki müşteri listelerini depolayın.

Dış verilere yapılan başvuruları anahtar-değere kaydederek Uygulama Yapılandırması'in avantajlarından yararlanmaya devam edebilirsiniz. Her veri kaynağını ayırt etmek için içerik türünü kullanabilirsiniz. Uygulamanız bir başvuruyu okuduğunda, kaynak için gerekli izne sahip olduğu varsayılarak başvuruda bulunan kaynaktan gerçek verileri yükler. Dış verilerinizin konumunu değiştirirseniz, uygulamanızın tamamını güncelleştirmek ve yeniden dağıtmak yerine yalnızca Uygulama Yapılandırması'de başvuruyu güncelleştirmeniz gerekir.

Uygulama Yapılandırması Key Vault başvuru özelliği bu örnekte bir örnektir. Temel alınan gizli diziler Key Vault'ta kalırken bir uygulama için gereken gizli dizilerin gerektiği şekilde güncelleştirilmesini sağlar.

bootstrap Uygulama Yapılandırması

bir Uygulama Yapılandırması deposuna erişmek için Azure portalında bulunan bağlantı dizesi kullanabilirsiniz. bağlantı dizesi kimlik bilgileri içerdiği için gizli dizi olarak kabul edilir. Bu gizli dizilerin Azure Key Vault'ta depolanması ve kodunuzun bunları almak için Key Vault'ta kimlik doğrulaması yapması gerekir.

Microsoft Entra Id'de yönetilen kimlikler özelliğini kullanmak daha iyi bir seçenektir. Yönetilen kimliklerle, Uygulama Yapılandırması deponuza erişimi önyüklemek için yalnızca Uygulama Yapılandırması uç nokta URL'sine ihtiyacınız vardır. URL'yi uygulama kodunuza (örneğin, appsettings.json dosyasına) ekleyebilirsiniz. Ayrıntılar için bkz. Uygulama Yapılandırması erişmek için yönetilen kimlikleri kullanma.

Azure Kubernetes Service'in Uygulama Yapılandırması erişimi

Azure Kubernetes Service'te (AKS) barındırılan iş yüklerinin Azure Uygulaması Yapılandırmasına erişmesi için aşağıdaki seçenekler kullanılabilir. Bu seçenekler genel olarak Kubernetes için de geçerlidir.

  • AKS kümenize Azure Uygulaması Yapılandırma Kubernetes Sağlayıcısı ekleyin. Kubernetes sağlayıcısı kümede pod olarak çalışır. Uygulama Yapılandırması deponuzdaki anahtar değerlerinden ve Key Vault başvurularından Yapılandırma Haritalar ve Gizli Diziler oluşturabilir. ConfigMap ve Gizli Dizi, uygulama kodunuzda herhangi bir değişiklik yapılmasına gerek kalmadan ortam değişkenleri veya bağlı dosyalar olarak kullanılabilir. Aynı AKS kümesinde çalışan birden çok uygulamanız varsa, bunların tümü oluşturulan Yapılandırma Haritalar ve Gizli Diziler'e erişebilir ve tek tek isteklerin Uygulama Yapılandırması gereksinimini ortadan kaldırır. Kubernetes sağlayıcısı dinamik yapılandırma güncelleştirmelerini de destekler. Bu, sizin için uygunsa önerilen seçenektir.

  • uygulamanızı Azure Uygulaması Yapılandırma sağlayıcısı kitaplıklarını kullanacak şekilde güncelleştirin. Sağlayıcı kitaplıkları ASP.NET, .NET, Java Spring, JavaScript/Node.js ve Python gibi birçok çerçeve ve dilde kullanılabilir. Bu yaklaşım, dinamik yapılandırma ve özellik yönetimi dahil olmak üzere Uygulama Yapılandırması işlevlerine tam erişim sağlar. Yüklenecek veriler ve her uygulama için hangi Uygulama Yapılandırması depolandığı konusunda ayrıntılı denetime sahipsiniz.

  • Helm kullanarak Kubernetes dağıtımıyla tümleştirme. Uygulamanızı güncelleştirmek veya AKS kümenize yeni bir pod eklemek istemiyorsanız, dağıtım aracılığıyla Helm kullanarak Uygulama Yapılandırması'dan Kubernetes kümenize veri getirme seçeneğiniz vardır. Bu yaklaşım, uygulamanızın Kubernetes değişkenlerinden ve Gizli Dizilerden yapılandırmaya erişmeye devam etmelerini sağlar. Uygulamanızın yeni yapılandırma değişiklikleri eklemesini istediğiniz zaman Helm yükseltmesini çalıştırabilirsiniz.

App Service veya Uygulama Yapılandırması Azure İşlevleri erişimi

doğrudan uygulamanızdaki Uygulama Yapılandırması erişmek için Uygulama Yapılandırması sağlayıcısını veya SDK kitaplıklarını kullanın. Bu yaklaşım, dinamik yapılandırma ve özellik yönetimi dahil olmak üzere Uygulama Yapılandırması işlevlerine tam erişim sağlar. App Service veya Azure İşlevleri üzerinde çalışan uygulamanız aşağıdaki yöntemlerden herhangi biri aracılığıyla Uygulama Yapılandırması deponuza erişim elde edebilir:

  • App Service veya Azure İşlevleri'nizde yönetilen kimliği etkinleştirin ve Uygulama Yapılandırması mağazanıza erişim verin. Daha fazla bilgi için bkz. Uygulama Yapılandırması erişmek için yönetilen kimlikleri kullanma.
  • bağlantı dizesi App Service veya Azure İşlevleri Uygulama ayarlarında Uygulama Yapılandırması deponuzda depolayın. Gelişmiş güvenlik için bağlantı dizesi Key Vault'ta depolayın ve App Service'ten veya Azure İşlevleri başvurun.

Ayrıca Uygulama Yapılandırması verilerinizi Uygulama ayarları veya ortam değişkenleri olarak uygulamanız için erişilebilir hale getirebilirsiniz. Bu yaklaşımla uygulama kodunuzu değiştirmekten kaçınabilirsiniz.

Uygulama Yapılandırması yapılan istekleri azaltma

Uygulama Yapılandırması aşırı istekler azaltma veya fazla kullanım ücretlerine neden olabilir. Yapılan istek sayısını azaltmak için:

  • Özellikle yapılandırma değerleriniz sık değişmiyorsa yenileme zaman aşımını artırın. yöntemini kullanarak SetCacheExpiration yeni bir yenileme zaman aşımı belirtin.

  • Tek tek tuşları izlemek yerine tek bir sentinel tuşu izleyin. Yalnızca sentinel anahtarı değiştiğinde tüm yapılandırmayı yenileyin. Örnek için bkz . ASP.NET Core uygulamasında dinamik yapılandırmayı kullanma.

  • Azure Event Grid'i kullanarak yapılandırma değiştiğinde, değişiklikleri sürekli yoklama yerine bildirim alabilirsiniz. Daha fazla bilgi için bkz. Event Grid'i Uygulama Yapılandırması veri değişikliği bildirimleri için kullanma.

  • Uygulama Yapılandırması deponuzun coğrafi çoğaltmasını etkinleştirin ve isteklerinizi birden çok çoğaltmaya dağıtın. Örneğin, genel olarak dağıtılan bir uygulama için her coğrafi bölgeden farklı bir çoğaltma kullanın. Her Uygulama Yapılandırması çoğaltmanın ayrı istek kotası vardır. Bu kurulum, geçici ve bölgesel kesintilere karşı ölçeklenebilirlik ve gelişmiş dayanıklılık modeli sunar.

Yapılandırma verilerini Uygulama Yapılandırması içeri aktarma

Uygulama Yapılandırması, Azure portalını veya CLI'yi kullanarak geçerli yapılandırma dosyalarınızdan yapılandırma ayarlarınızı toplu olarak içeri aktarma seçeneği sunar. Anahtar-değerleri Uygulama Yapılandırması,örneğin ilgili depolar arasında dışarı aktarmak için de aynı seçenekleri kullanabilirsiniz. GitHub veya Azure DevOps'taki deponuzla sürekli bir eşitleme ayarlamak isterseniz GitHub Eylemimizi veya Azure İşlem Hattı Gönderme Görevi'ni kullanarak mevcut kaynak denetimi uygulamalarınızı kullanmaya devam edebilir ve Uygulama Yapılandırması avantajlarından yararlanabilirsiniz.

Uygulama Yapılandırması'da çok bölgeli dağıtım

Uygulamanız birden çok bölgeye dağıtıldıysa, Uygulama Yapılandırması deponuzun coğrafi çoğaltmasını etkinleştirmenizi öneririz. Uygulamanızın birincil olarak uygulamanızın örneklerinin dağıtıldığı bölgeyle eşleşen çoğaltmaya bağlanmasına izin verebilir ve diğer bölgelerdeki çoğaltmalara yük devretmesine izin vekleyebilirsiniz. Bu kurulum, uygulamanızla Uygulama Yapılandırması arasındaki gecikme süresini en aza indirir, her çoğaltmada ayrı azaltma kotaları olduğundan yükü yayar ve uygulamanızın geçici ve bölgesel kesintilere karşı dayanıklılığını artırır. Daha fazla bilgi için bkz . Dayanıklılık ve Olağanüstü Durum Kurtarma .

Yüksek dayanıklılığa sahip uygulamalar oluşturma

Uygulamalar, Azure Uygulaması Yapılandırma'nın yüksek kullanılabilirliğini kritik hale getirerek genellikle yapılandırmayı başlatır. İyileştirilmiş dayanıklılık için uygulamaların Uygulama Yapılandırması güvenilirlik özelliklerinden yararlanması ve gereksinimlerinize göre aşağıdaki önlemleri almayı göz önünde bulundurması gerekir.

  • Azure kullanılabilirlik alanı desteği olan bölgelerde sağlama. Kullanılabilirlik alanları, uygulamaların veri merkezi kesintilerine karşı dayanıklı olmasını sağlar. Uygulama Yapılandırması, ek ücret ödemeden tüm müşteriler için alanlar arası yedeklilik sunar. Kullanılabilirlik alanları desteğiyle bölgelerde Uygulama Yapılandırması mağazanızı oluşturmanız önerilir. Uygulama Yapılandırması kullanılabilirlik alanı desteğini etkinleştirdiği bölgelerin listesini bulabilirsiniz.
  • Coğrafi çoğaltmayı etkinleştirin ve uygulamanızın çoğaltmalar arasında yük devretme yapmasına izin verin. Bu kurulum, ölçeklenebilirlik ve geçici hatalara ve bölgesel kesintilere karşı gelişmiş dayanıklılık modeli sunar. Daha fazla bilgi için bkz . Dayanıklılık ve Olağanüstü Durum Kurtarma .
  • Güvenli dağıtım uygulamalarıyla yapılandırmayı dağıtma. Hatalı veya yanlışlıkla yapılan yapılandırma değişiklikleri genellikle uygulama kapalı kalma süresine neden olabilir. Mümkün olduğunda, örneğin Azure portalından doğrudan üretimi etkileyen yapılandırma değişiklikleri yapmaktan kaçınmanız gerekir. Güvenli dağıtım uygulamalarında (SDP), dağıtım kaynaklı sorunların olası patlama yarıçapını en aza indirmek için aşamalı kullanıma açık dağıtım modeli kullanırsınız. SDP'yi benimserseniz, üretim ortamına dağıtmadan önce bir yapılandırma anlık görüntüsü derleyebilir ve test edebilirsiniz. Dağıtım sırasında, yeni anlık görüntüyü aşamalı olarak almak için uygulamanızın örneklerini güncelleştirebilirsiniz. Sorun algılanırsa, bilinen son iyi (LKG) anlık görüntüsünü yeniden dağıtarak değişikliği geri alabilirsiniz. Anlık görüntü sabittir ve tüm dağıtımlarda tutarlılık sağlar. Anlık görüntüleri dinamik yapılandırmayla birlikte kullanabilirsiniz. Temel yapılandırmanız için bir anlık görüntü ve acil durum yapılandırma geçersiz kılmaları ve özellik bayrakları için dinamik yapılandırma kullanın.
  • Yapılandırmayı uygulamanıza ekleyin. Uygulamanızın her zaman yapılandırmanın bir kopyasına erişimi olduğundan emin olmak istiyorsanız veya Uygulama Yapılandırması çalışma zamanı bağımlılığından tamamen kaçınmayı tercih ediyorsanız, derleme veya yayın zamanı sırasında yapılandırmayı Uygulama Yapılandırması alabilir ve uygulamanızla birlikte ekleyebilirsiniz. Daha fazla bilgi edinmek için Uygulama Yapılandırması CI/CD işlem hattınızla veya Kubernetes dağıtımınızla tümleştirme örneklerine göz atın.
  • Uygulama Yapılandırması sağlayıcılarını kullanın. Uygulamalar, çalışma zamanları sırasında ortaya çıkan ağ sorunları gibi sorunları hesaba katabildiği ve hatalara daha hızlı yanıt verebildiği için yüksek dayanıklılık elde etme konusunda kritik bir rol oynar. Uygulama Yapılandırması sağlayıcıları, otomatik çoğaltma bulma, çoğaltma yük devretme, özelleştirilebilir zaman aşımları ile başlatma yeniden denemeleri, yapılandırma önbelleğe alma ve güvenilir yapılandırma yenileme için uyarlamalı stratejiler gibi çeşitli yerleşik dayanıklılık özellikleri sunar. Bu özelliklerden yararlanmak için Uygulama Yapılandırması sağlayıcıları kullanmanız kesinlikle önerilir. Bu bir seçenek değilse, en yüksek dayanıklılık düzeyine ulaşmak için özel çözümünüzde benzer özellikler uygulamayı düşünmelisiniz.

Uygulama Yapılandırması'de istemci uygulamaları

İstemci uygulamalarında Uygulama Yapılandırması kullandığınızda, iki ana faktörü dikkate aldığınızdan emin olun. İlk olarak, bağlantı dizesi bir istemci uygulamasında kullanıyorsanız, Uygulama Yapılandırması deponuzun erişim anahtarını genel kullanıma verme riskini göze alırsınız. İkincisi, bir istemci uygulamasının tipik ölçeği, Uygulama Yapılandırması deponuza aşırı istekte bulunarak fazla kullanım ücretlerine veya azaltmaya neden olabilir. Azaltma hakkında daha fazla bilgi için bkz . SSS.

Bu endişeleri gidermek için istemci uygulamalarınızla Uygulama Yapılandırması deponuz arasında bir proxy hizmeti kullanmanızı öneririz. Proxy hizmeti, kimlik doğrulama bilgilerini sızdıran bir güvenlik sorunu olmadan Uygulama Yapılandırması deponuzda güvenli bir şekilde kimlik doğrulaması yapabilir. Uygulama Yapılandırması sağlayıcı kitaplıklarından birini kullanarak bir ara sunucu hizmeti oluşturabilirsiniz, böylece Uygulama Yapılandırması gönderilen istek hacmini iyileştirmeye yönelik yerleşik önbelleğe alma ve yenileme özelliklerinden yararlanabilirsiniz. Uygulama Yapılandırması sağlayıcıları kullanma hakkında daha fazla bilgi için Hızlı Başlangıçlar ve Öğreticiler makalelerine bakın. Proxy hizmeti, yapılandırmayı önbelleğinden istemci uygulamalarınıza sunar ve bu bölümde ele alınan iki olası sorundan kaçınırsınız.

Uygulama Yapılandırması'da çok kiracılı uygulamalar

Çok kiracılı bir uygulama, uygulamanızın paylaşılan bir örneğinin birden çok müşteriye veya kiracıya hizmet ettiği bir mimari üzerine kurulmuştur. Örneğin, kullanıcılarınıza ayrı hesaplar ve özelleştirilmiş deneyimler sunan bir e-posta hizmetiniz olabilir. Uygulamanız genellikle her kiracı için farklı yapılandırmaları yönetir. Burada, çok kiracılı bir uygulamada Uygulama Yapılandırması kullanmaya yönelik bazı mimari konular yer alır.

Kod Olarak Yapılandırma

Kod olarak yapılandırma, kaynak denetim sisteminiz altında yapılandırma dosyalarını yönetmeye yönelik bir uygulamadır( örneğin, bir git deposu). Tüm yapılandırma değişiklikleri için izlenebilirlik ve onay süreci gibi avantajlar sunar. Yapılandırmayı kod olarak benimserseniz, Uygulama Yapılandırması dosyalardaki yapılandırma verilerinizi yönetmenize ve bunları derleme, sürüm veya CI/CD işleminizin bir parçası olarak dağıtmanıza yardımcı olacak araçlara sahiptir. Bu şekilde, uygulamalarınız Uygulama Yapılandırması depolarınızdan en son verilere erişebilir.

Bu model, verileri Uygulama Yapılandırması işlemeden önce doğrulama ve test adımlarını dahil etmenizi sağlar. Birden çok Uygulama Yapılandırması deposu kullanıyorsanız, yapılandırma verilerini bunlara artımlı olarak veya tümünü aynı anda gönderebilirsiniz.

Sonraki adımlar