Azure Uygulama Yapılandırması en iyi yöntemler

Bu makalede, uygulama kullanırken sık kullanılan desenler ve en iyi Azure Uygulama Yapılandırması.

Anahtar gruplamaları

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

  • Anahtar ön ekleri
  • Etiketler

Anahtarlarınızı grup olarak kullanmak için seçeneklerden birini veya ikisini birden kullanabilirsiniz.

Anahtar ön ekleri, anahtarların başlangıç parçalarıdır. Adlarında aynı ön eki kullanarak bir anahtar kümesi grubunu mantıksal olarak grup kullanabilirsiniz. Ön ekler, bir ad alanı oluşturmak için URL yoluna benzer şekilde bir sınırlayıcıyla / bağlanmış birden çok bileşen içerebilir. Bu tür hiyerarşiler, birçok uygulama ve mikro hizmet için anahtarları bir Uygulama Yapılandırma deposuna depolarken kullanışlıdır.

Önemli olan, uygulama kodunuzun ilgili ayarların değerlerini almak için başvuran anahtarlar olduğudur. Anahtarlar değişmesin, yoksa her durumda kodunuzu değiştirmeniz gerekir.

Etiketler, anahtarlarda bir öznitelik olarak kullanılır. Bir anahtarın çeşitlemelerini oluşturmak için kullanılır. Örneğin, bir anahtarın birden çok sürümüne etiket atabilirsiniz. Sürüm yineleme, ortam veya başka bağlamsal bilgiler olabilir. Uygulamanız başka bir etiket belirterek tamamen farklı bir anahtar değerleri kümesi talep ediyor olabilir. Sonuç olarak, tüm anahtar başvuruları kodunda değişmeden kalır.

Anahtar-değer bileşimleri

Uygulama Yapılandırması, kendi içinde depolanan tüm anahtarları bağımsız varlıklar olarak davranır. Uygulama Yapılandırması, anahtarlar arasında herhangi bir ilişki çıkarım yapmaya veya hiyerarşilerine göre anahtar değerlerini devralmaya denemez. Ancak, uygulama kodunda uygun yapılandırma yığınlama ile birlikte etiketleri kullanarak birden çok anahtar kümesi topabilirsiniz.

Bir örneğe göz atalım. Değeri geliştirme ortamına göre değişebiliyor olan Asset1 adlı bir ayarına sahip olduğunu varsayalım. Boş bir etikete ve "Geliştirme" adlı etikete sahip "Asset1" adlı bir anahtar oluşturun. İlk etikette Varlık1 için varsayılan değeri, ikinci etikette ise "Geliştirme" için belirli bir değer koyarak.

Kodunda, önce herhangi bir etiket olmadan anahtar değerlerini ve ardından "Geliştirme" etiketiyle aynı anahtar değerleri kümelerini ikinci kez alırsınız. Değerleri ikinci kez aldığınız zaman anahtarların önceki değerlerinin üzerine yazılır. .NET Core yapılandırma sistemi, birden çok yapılandırma verisini birbirinin üzerine "yığma" olanak sağlar. Bir anahtar birden fazla kümede mevcutsa, anahtarı içeren son küme kullanılır. .NET Core gibi modern bir programlama çerçevesiyle, Uygulama Yapılandırmasına erişmek için yerel bir yapılandırma sağlayıcısı kullanırsanız bu yığınlama özelliğini ücretsiz elde edersiniz. Aşağıdaki kod parçacığı bir .NET Core uygulamasında yığınlamanın nasıl uygulandığını 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 üzere etiketleri kullanma tam bir örnek sağlar.

Dış verilere başvurular

Uygulama Yapılandırması normalde yapılandırma dosyalarına veya ortam değişkenlerine kaydeden tüm yapılandırma verilerini depolamak için tasarlanmıştır. Ancak, bazı veri türleri diğer kaynaklarda yer için daha uygun olabilir. Örneğin, gizli dizileri Key Vault, Azure Depolama,Azure AD gruplarında üyelik bilgileri veya bir veritabanındaki müşteri listelerinde depolar.

Dış verilere başvuru bir anahtar-değere kaydederek Uygulama Yapılandırması'nın avantajını yine de kullanabilirsiniz. Her veri kaynağını ayırt etmek için içerik türünü kullanabilirsiniz. Uygulamanız bir başvuru okuduğunda, başvurulan kaynaktan verileri yükleyebilirsiniz. Dış verilerinizin konumunu değiştirirken, tüm uygulamalarınızı güncelleştirmek ve yeniden değiştirmek yerine yalnızca Uygulama Yapılandırması'nda başvuruyu güncelleştirmeniz gerekir.

Uygulama Yapılandırması Key Vault özelliği bu örnekte bir örnektir. Temel alınan gizli diziler uygulamanın kendi içinde kalırken, uygulama için gereken gizli dizilerin gerektiğinde güncelleştiril Key Vault.

Uygulama Yapılandırması önyüklemesi

Bir Uygulama Yapılandırma deposuna erişmek için, Uygulama Yapılandırma Deposu'Azure portal. Bağlantı dizeleri kimlik bilgileri içerdiği için gizli dizi olarak kabul edilir. Bu gizli dizilerin Azure Key Vault ve kodunuzun bunları almak için Key Vault doğrulaması gerekir.

Yönetilen kimlikler özelliğini daha iyi bir seçenek olarak Azure Active Directory. Yönetilen kimliklerle, Uygulama Yapılandırma mağazanıza önyükleme erişimi için yalnızca Uygulama Yapılandırması uç nokta URL'sini gerekir. URL'yi uygulama kodunuza (örneğin, appsettings.json dosyasına) katıştırabilirsiniz. Ayrıntılar için bkz. Azure yönetilen kimlikleriyle tümleştirin.

Uygulama Yapılandırmasına uygulama veya işlev erişimi

Aşağıdaki yöntemlerden birini kullanarak Web Apps veya Azure İşlevleri için Uygulama Yapılandırmasına erişim sabilirsiniz:

  • Uygulama Azure portal, Uygulama Yapılandırma mağazanıza bağlantı dizesini Uygulama ayarları sayfasında App Service.
  • Bağlantı dizesini App Configuration store' Key Vault depolar ve App Service.
  • Uygulama Yapılandırma deposuna erişmek için Azure yönetilen kimliklerini kullanın. Daha fazla bilgi için bkz. Azure yönetilen kimlikleriyle tümleştirin.
  • Uygulama Yapılandırması'dan Uygulama Yapılandırması'App Service. Uygulama Yapılandırması, verileri doğrudan azure Azure portal gönderen bir dışarı aktarma işlevi (Azure portal ve Azure CLI App Service. Bu yöntemde, uygulama kodunu hiç değiştirmeniz gerekmeyecek.

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

Uygulama Yapılandırmasına yönelik aşırı istekler, azaltma veya fazla kullanımın ü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ırabilirsiniz. yöntemini kullanarak yeni bir yenileme zaman aşımı SetCacheExpiration belirtin.

  • Tek tek anahtarları izlemek yerine tek bir Sentinel anahtarını izleyin. Tüm yapılandırmayı yalnızca sentinel anahtarı değişirse yenileyin. Örnek için bkz. ASP.NET Core uygulama içinde dinamik yapılandırma kullanma.

  • Yapılandırma Azure Event Grid bildirim almak için, değişiklikleri sürekli yoklama yerine bu ayarları kullanın. Daha fazla bilgi için bkz. Uygulama Event Grid değişiklik bildirimleri için uygulama yapılandırmayı kullanma.

  • İsteklerinizi birden çok Uygulama Yapılandırma mağazasına yayma. Örneğin, genel olarak dağıtılan bir uygulama için her coğrafi bölgeden farklı bir depo kullanın. Her Uygulama Yapılandırma mağazasının kendi istek kotası vardır. Bu kurulum size ölçeklenebilirlik için bir model verir ve tek hata noktasını önler.

Yapılandırma verilerini Uygulama Yapılandırmasına aktarma

Uygulama Yapılandırması, Azure portal veya CLI kullanarak geçerli yapılandırma dosyalarınızın yapılandırma ayarlarınızı toplu olarak içeri aktarma seçeneği sunar. Uygulama Yapılandırması'nın anahtar değerlerini dışarı aktarma (örneğin, ilgili mağazalar arasında) için de aynı seçenekleri kullanabilirsiniz. GitHub veya Azure DevOps'daki depoyla sürekli eşitleme ayarlamak için GitHub Action veya Azure Pipeline Push Görevi'ni kullanabilirsiniz. Böylece Uygulama Yapılandırması'nın avantajlarından faydalanırken mevcut kaynak denetimi uygulamalarınızı kullanmaya devam edin.

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

Uygulama Yapılandırması bölgesel bir hizmettir. Bölge başına farklı yapılandırmalara sahip uygulamalar için bu yapılandırmaların tek bir örnekte depolanması tek hata noktası oluşturabilir. Bölge başına birden çok bölgeye bir Uygulama Yapılandırması örneği dağıtmak daha iyi bir seçenek olabilir. Bölgesel olağanüstü durum kurtarma, performans ve güvenlik silosu ile ilgili yardımcı olabilir. Bölgeye göre yapılandırma ayrıca gecikme süresini iyiler ve azaltma örnek başına olduğu için ayrılmış azaltma kotalarını kullanır. Olağanüstü durum kurtarma azaltma uygulamak için birden çok yapılandırma depoları kullanabilirsiniz.

Uygulama Yapılandırmasında istemci uygulamaları

İstemci uygulamalarında Uygulama Yapılandırması'nın kullanımını dikkate alan iki önemli faktör olduğundan emin olur. İlk olarak, bağlantı dizesini bir istemci uygulamasında kullanıyorsanız, Uygulama Yapılandırma deponun erişim anahtarını genel olarak açığa çıkarabilirsiniz. İkincisi, bir istemci uygulamasının tipik ölçeği, Uygulama Yapılandırma mağazanıza aşırı isteklere neden olabilir ve bu da fazla kullanım ücretlerine veya azaltmaya neden olabilir. Azaltma hakkında daha fazla bilgi için bkz. SSS.

Bu endişelerin ele alınmak için istemci uygulamalarınız ile Uygulama Yapılandırma mağazanız arasında bir ara sunucu hizmeti kullanılması önerilir. Ara sunucu hizmeti, kimlik doğrulama bilgilerini sızdıran bir güvenlik sorunu olmadan Uygulama Yapılandırma mağazanız ile güvenli bir şekilde kimlik doğrular. Uygulama Yapılandırması sağlayıcı kitaplıklarından birini kullanarak bir ara sunucu hizmeti oluşturabilirsiniz. Bu nedenle, Uygulama Yapılandırması'ne gönderilen istek hacmini iyileştirmeye yönelik yerleşik önbelleğe alma ve yenileme özelliklerinden faydalanabilirsiniz. Uygulama Yapılandırma sağlayıcılarını kullanma hakkında daha fazla bilgi için Hızlı Başlangıçlar ve Öğreticiler makalesine bakın. Proxy hizmeti, önbelleğinden istemci uygulamalarınıza yapılandırmayı sunar ve bu bölümde ele alınan iki olası sorundan kaçınabilirsiniz.

Kod Olarak Yapılandırma

Kod olarak yapılandırma, kaynak denetim sisteminiz altında yapılandırma dosyalarını yönetmeye (örneğin, git deposu) bir uygulamadır. Tüm yapılandırma değişiklikleri için izlenebilirlik ve onay süreci gibi avantajlar sağlar. Yapılandırmayı kod olarak benimsersiniz, Uygulama Yapılandırması'nın yapılandırma verilerinizi dağıtmanıza yardımcı olacak araçları vardır. Bu şekilde, uygulamalarınız Uygulama Yapılandırma mağazalarından en son verilere erişebilirsiniz.

  • Daha GitHub için, depo için Uygulama Yapılandırma Eşitleme GitHub Eylemini etkinleştirebilirsiniz. Bir çekme isteği her birleştirilirken yapılandırma dosyalarında yapılan değişiklikler Uygulama Yapılandırması ile otomatik olarak eşitlenir.
  • Daha Azure DevOps, veri eşitlemesi Azure Uygulama Yapılandırmasıderlemenize veya yayın işlem hatlarınıza bir Azure işlem hattı görevi olan Azure Uygulama Yapılandırması'i dahil edin.
  • Ayrıca, CI/CD sisteminizin bir parçası olarak Azure CLI kullanarak yapılandırma dosyalarını Uygulama Yapılandırması'na aktarabilirsiniz. Daha fazla bilgi için bkz. az appconfig kv import.

Bu model, verileri Uygulama Yapılandırmasına işlemeden önce doğrulama ve test adımlarını dahil etmene olanak sağlar. Birden çok Uygulama Yapılandırma depoları kullanıyorsanız, yapılandırma verilerini artımlı olarak veya hepsi aynı anda bu depolara da atabilirsiniz.

Sonraki adımlar