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 öğreticide JavaScript uygulamalarınızda dinamik yapılandırmayı etkinleştirmeyi öğreneceksiniz. Bu öğreticideki örnek, JavaScript hızlı başlangıcında sunulan örnek uygulamayı temel alır. Devam etmeden önce Azure Uygulaması Yapılandırması ile JavaScript uygulaması oluşturma işlemini tamamlayın.
Önkoşullar
- Azure Uygulaması Yapılandırması ile JavaScript uygulaması oluşturma hızlı başlangıcını tamamlayın.
-
@azure/app-configuration-providerPaketi 2.0.0 veya sonraki bir sürüme güncelleştirin.
Anahtar-değer ekleme
Azure Uygulaması Yapılandırma deponuza aşağıdaki anahtar değerini ekleyin. Azure portalını veya CLI'yı kullanarak bir depoya anahtar-değer ekleme hakkında daha fazla bilgi için Anahtar-değer oluşturma bölümüne gidin.
| Anahtar | Değer | Etiket | İçerik türü |
|---|---|---|---|
| ileti | Merhaba Dünya! | Boş bırakın | Boş bırakın |
Konsol uygulamaları
Aşağıdaki örneklerde konsol uygulamalarında yenilenebilir yapılandırma değerlerinin nasıl kullanılacağı gösterilmektedir.
Uygulamanızın Uygulama Yapılandırması'dan yüklenen yapılandırma verilerini bir Map veya bir yapılandırma nesnesi olarak nasıl tükettiğine bağlı olarak aşağıdaki yönergeleri seçin.
Uygulama Yapılandırması'dan veri yükleme
Microsoft Entra Id (önerilen) veya bağlantı dizesi kullanarak Uygulama Yapılandırması bağlanabilirsiniz. Aşağıdaki kod parçacığında Microsoft Entra Id kullanımı gösterilmektedir. Uygulama Yapılandırması deponuzda kimlik doğrulaması yapmak için DefaultAzureCredential 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.
app.js dosyasını açın ve işlevi güncelleştirin
load. Yenilemeyi etkinleştirmek ve yenileme seçeneklerini yapılandırmak için birrefreshOptionsparametre ekleyin. Sunucuda bir değişiklik algılandığında yüklenen yapılandırma güncelleştirilir. Varsayılan olarak, 30 saniyelik bir yenileme aralığı kullanılır, ancak özelliğiylerefreshIntervalInMsgeçersiz kılabilirsiniz.// Connecting to Azure App Configuration using endpoint and token credential const appConfig = await load(endpoint, credential, { // Enabling the dynamic refresh refreshOptions: { enabled: true } });Not
"Yenileme etkinleştirildi ancak izlenen ayar belirtilmemiş" hatasını alırsanız, lütfen paketi 2.0.0
@azure/app-configuration-providergüncelleştirin.Tavsiye
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.
Tek başına ayarlamak
refreshOptionsyapılandırmayı otomatik olarak yenilemez. Yenilemeyi tetiklemek için yöntemini çağırmanızrefreshgerekir. Bu tasarım, uygulamanız boşta olduğunda gereksiz isteklerin Uygulama Yapılandırması engeller. Çağrıyırefreshuygulama etkinliğinizin gerçekleştiği yere eklemeniz gerekir. Bu, etkinlik temelli yapılandırma yenilemesi olarak bilinir. Örneğin, gelen bir iletiyi veya siparişi işlerken ya da karmaşık bir görev gerçekleştirdiğiniz yinelemenin içinde çağrırefreshyapabilirsiniz. Alternatif olarak, uygulamanız her zaman etkinse zamanlayıcı kullanabilirsiniz. Bu örnekte,refreshgösterim amacıyla bir döngüde çağrılır. Arama herhangi bir nedenle başarısız olsarefreshbile, uygulamanız önbelleğe alınmış yapılandırmayı kullanmaya devam eder. Yapılandırılan yenileme aralığı geçirildiğinde verefreshçağrı uygulama etkinliğiniz tarafından tetiklendiğinde başka bir deneme yapılır. Çağrırefresh, yapılandırılan yenileme aralığı tamamlanmadan önce yapılan bir çalışma dışıdır, bu nedenle sık sık çağrılsa bile performans etkisi en düşük düzeyde olur.İzlenen anahtar-değerlerinin yapılandırma değişikliklerini yoklamak için aşağıdaki kodu ekleyin.
// Polling for configuration changes every 5 seconds while (true) { console.log(appConfig.get("message")); // Consume current value of message from a Map appConfig.refresh(); // Refreshing the configuration setting asynchronously await sleepInMs(5000); // Waiting before the next refresh }Şimdi dosya app.js aşağıdaki kod parçacığı gibi görünmelidir:
const sleepInMs = require("util").promisify(setTimeout); const { load } = require("@azure/app-configuration-provider"); const { DefaultAzureCredential } = require("@azure/identity"); const endpoint = process.env.AZURE_APPCONFIG_ENDPOINT; const credential = new DefaultAzureCredential(); // For more information, see https://learn.microsoft.com/azure/developer/javascript/sdk/credential-chains#use-defaultazurecredential-for-flexibility async function run() { // Connecting to Azure App Configuration using endpoint and token credential const appConfig = await load(endpoint, credential, { // Enabling the dynamic refresh refreshOptions: { enabled: true } }); // Polling for configuration changes every 5 seconds while (true) { console.log(appConfig.get("message")); // Consume current value of message from a Map appConfig.refresh(); // Refreshing the configuration setting asynchronously await sleepInMs(5000); // Waiting before the next refresh } } run().catch(console.error);
Uygulamayı çalıştırma
Betiğinizi çalıştırın:
node app.jsÇıktıyı Doğrula:
Hello World!Her 5 saniyede bir yeni bir satıra "Merhaba Dünya!" yazdırmaya devam eder.
Aşağıdaki anahtar değerlerini Azure Uygulaması Yapılandırma deposuna güncelleştirin. anahtarının
messagedeğerini güncelleştirin.Anahtar Değer Etiket İçerik türü ileti Merhaba Dünya - Güncelleştirildi! Boş bırakın Boş bırakın Değerler güncelleştirildikten sonra, güncelleştirilmiş değer yenileme aralığından sonra yazdırılır.
Hello World - Updated!
Sunucu uygulaması
Aşağıdaki örnekte, mevcut bir http sunucusunun yenilenebilir yapılandırma değerlerini kullanacak şekilde nasıl güncelleştirilecekleri gösterilmektedir.
adlı
server.jsyeni bir JavaScript dosyası oluşturun ve aşağıdaki kodu ekleyin:const http = require('http'); function startServer() { const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end("Hello World!"); }); const hostname = "localhost"; const port = 3000; server.listen(port, hostname, () => { console.log(`Server running at http://localhost:${port}/`); }); } startServer();Betiğinizi çalıştırın:
node server.jsZiyaret
http://localhost:3000edin ve yanıtı görürsünüz:
Uygulama Yapılandırması'dan veri yükleme
server.jsUygulama Yapılandırması kullanacak ve dinamik yenilemeyi etkinleştirecek şekilde güncelleştirin:const http = require("http"); const { load } = require("@azure/app-configuration-provider"); const { DefaultAzureCredential } = require("@azure/identity"); const endpoint = process.env.AZURE_APPCONFIG_ENDPOINT; const credential = new DefaultAzureCredential(); // For more information, see https://learn.microsoft.com/azure/developer/javascript/sdk/credential-chains#use-defaultazurecredential-for-flexibility let appConfig; async function initializeConfig() { appConfig = await load(endpoint, credential, { refreshOptions: { enabled: true, refreshIntervalInMs: 15_000 // set the refresh interval } }); } function startServer() { const server = http.createServer((req, res) => { // refresh the configuration asynchronously when there is any incoming request appConfig.refresh(); res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end(appConfig.get("message")); }); const hostname = "localhost"; const port = 3000; server.listen(port, hostname, () => { console.log(`Server running at http://localhost:${port}/`); }); } // Initialize the configuration and then start the server initializeConfig() .then(() => startServer());
İstek temelli yapılandırma yenilemesi
Çoğu durumda, Uygulama Yapılandırması sağlayıcısının yenileme işlemi işlem yapılmaz olarak ele alınabilir. Yalnızca ayarladığınız yenileme aralığı süresi geçtiğinde Uygulama Yapılandırması değerini denetlemek için istekler gönderir.
Web uygulamanız için istek temelli yapılandırma yenilemesi uygulamanızı öneririz. Yapılandırma yenilemesi, web uygulamanıza gelen istekler tarafından tetiklenir. Uygulamanız boşta olduğunda, gelen istek olmadığında yenileme gerçekleşmez. Uygulamanız etkin olduğunda, uygulamanıza gelen her istekte çağrıyı appConfig.refresh() tetikleme amacıyla ara yazılım veya benzer bir mekanizma kullanabilirsiniz.
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.
Uygulamayı çalıştırma
Http sunucunuzu yeniden başlatın:
node server.jsUygulama Yapılandırması mağazanızdaki anahtar olan
http://localhost:3000yanıtı ziyaret edinmessageve doğrulayın.
Aşağıdaki anahtar değerlerini Azure Uygulaması Yapılandırma deposuna güncelleştirin. anahtarının
messagedeğerini güncelleştirin.Anahtar Değer Etiket İçerik türü ileti Merhaba Dünya - Güncelleştirildi! Boş bırakın Boş bırakın Yaklaşık 15 saniye sonra sayfayı birden çok kez yenileyin; ileti güncelleştirilmelidir.
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 JavaScript uygulamanızın yapılandırma ayarlarını Azure Uygulaması Yapılandırmasından dinamik olarak yenilemesini etkinleştirmişsiniz. Azure Uygulaması Yapılandırmasına erişimi kolaylaştırmak için Azure yönetilen kimliğini kullanmayı öğrenmek için sonraki öğreticiye geçin.
JavaScript yapılandırma sağlayıcısı kitaplığının tam özellik çalıştırması için aşağıdaki belgeye geçin.