Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto kurzu se dozvíte, jak povolit dynamickou konfiguraci v javascriptových aplikacích. Příklad v tomto kurzu vychází z ukázkové aplikace představené v rychlém startu javascriptu. Než budete pokračovat, dokončete vytvoření javascriptové aplikace s konfigurací Aplikace Azure.
Požadavky
- Dokončete rychlý start– Vytvoření javascriptové aplikace pomocí konfigurace Aplikace Azure.
-
@azure/app-configuration-providerAktualizujte balíček na verzi 2.0.0 nebo novější.
Přidání hodnot klíče
Do úložiště konfigurace Aplikace Azure přidejte následující hodnotu klíče. Další informace o tom, jak přidat hodnoty klíčů do úložiště pomocí webu Azure Portal nebo rozhraní příkazového řádku, najdete v tématu Vytvoření hodnoty klíče.
| Klíč | Hodnota | Popisek | Typ obsahu |
|---|---|---|---|
| zpráva | Ahoj světe! | Nechejte prázdné. | Nechejte prázdné. |
Konzolové aplikace
Následující příklady ukazují, jak používat aktualizovatelné konfigurační hodnoty v konzolových aplikacích.
Na základě toho, jak vaše aplikace využívá konfigurační data načtená z App Configuration, buď jako Map objekt konfigurace, nebo jako objekt konfigurace, zvolte následující pokyny.
Načtení dat z konfigurace aplikace
Ke konfiguraci aplikace se můžete připojit pomocí Microsoft Entra ID (doporučeno) nebo připojovací řetězec. Následující fragment kódu ukazuje použití Microsoft Entra ID. Pomocí defaultAzureCredential se ověříte v obchodě App Configuration Store. Během dokončování rychlého startu uvedeného v požadavcích jste už přiřadili své přihlašovací údaje roli Čtenář dat konfigurace aplikace.
Otevřete soubor app.js a aktualizujte
loadfunkci.refreshOptionsPřidejte parametr, který povolí aktualizaci a nakonfiguruje možnosti aktualizace. Načtená konfigurace se aktualizuje při zjištění změny na serveru. Ve výchozím nastavení se používá interval aktualizace 30 sekund, ale můžete horefreshIntervalInMspřepsat vlastností.// Connecting to Azure App Configuration using endpoint and token credential const appConfig = await load(endpoint, credential, { // Enabling the dynamic refresh refreshOptions: { enabled: true } });Poznámka:
Pokud se zobrazí chyba Aktualizace je povolená, ale nejsou zadána žádná zhlédnutá nastavení, aktualizujte
@azure/app-configuration-providerbalíček na verzi 2.0.0 nebo novější.Návod
Pro více informací o sledování změn konfigurace viz Nejlepší praxe pro aktualizaci konfigurace.
Samotné nastavení
refreshOptionsnebude automaticky aktualizovat konfiguraci. K aktivaci aktualizace je potřeba volatrefreshmetodu. Tento návrh zabraňuje zbytečným požadavkům na konfiguraci aplikace, když je vaše aplikace nečinná. Měli byste zahrnout volání,refreshve kterém dojde k aktivitě vaší aplikace. To se označuje jako aktualizace konfigurace řízené aktivitami. Můžete například volatrefreshpři zpracování příchozí zprávy nebo objednávky nebo uvnitř iterace, kde provádíte složitý úkol. Případně můžete použít časovač, pokud je vaše aplikace vždy aktivní. V tomto příkladurefreshse volá ve smyčce pro demonstrační účely. I když volání z nějakéhorefreshdůvodu selže, vaše aplikace bude dál používat konfiguraci uloženou v mezipaměti. Další pokus se provede, když se předá nakonfigurovaný interval aktualizace arefreshvolání se aktivuje aktivitou vaší aplikace. Volánírefreshje no-op před uplynutím nakonfigurovaného intervalu aktualizace, takže jeho dopad na výkon je minimální, i když se volá často.Přidejte následující kód pro dotazování změn konfigurace sledovaných hodnot klíč-hodnota.
// 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 }Teď by soubor app.js měl vypadat jako následující fragment kódu:
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);
Spuštění aplikace
Spusťte skript:
node app.jsOvěřit výstup:
Hello World!Po 5 sekundách se v novém řádku bude dál tisknout text "Hello World!".
Aktualizujte následující hodnoty klíče do úložiště konfigurace Aplikace Azure. Aktualizujte hodnotu klíče
message.Klíč Hodnota Popisek Typ obsahu zpráva Hello World - aktualizováno! Nechejte prázdné. Nechejte prázdné. Po aktualizaci hodnot se aktualizovaná hodnota vytiskne po intervalu aktualizace.
Hello World - Updated!
Serverová aplikace
Následující příklad ukazuje, jak aktualizovat existující server HTTP tak, aby používal aktualizovatelné konfigurační hodnoty.
Vytvořte nový javascriptový soubor s názvem
server.jsa přidejte následující kód: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();Spusťte skript:
node server.jsNavštivte
http://localhost:3000a uvidíte odpověď:
Načtení dat z konfigurace aplikace
server.jsAktualizujte konfiguraci aplikace a povolte dynamickou aktualizaci: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());
Aktualizace konfigurace řízené požadavky
Ve většině případů může být operace aktualizace poskytovatele konfigurace aplikace považována za operaci no-op. Odešle pouze požadavky, které zkontrolují hodnotu v App Configuration, když uplynula doba intervalu aktualizace, kterou jste nastavili.
Doporučujeme implementovat aktualizaci konfigurace řízené požadavky pro vaši webovou aplikaci. Aktualizace konfigurace se aktivuje příchozími požadavky vaší webové aplikace. Pokud je vaše aplikace nečinná, nedojde k žádné aktualizaci, když není příchozí požadavek. Když je vaše aplikace aktivní, můžete použít middleware nebo podobný mechanismus k aktivaci appConfig.refresh() volání při každém příchozím požadavku do vaší aplikace.
Pokud požadavek na konfiguraci aplikace pro detekci změn selže, vaše aplikace bude dál používat konfiguraci uloženou v mezipaměti. Nové pokusy o kontrolu změn se budou pravidelně provádět, zatímco ve vaší aplikaci probíhají nové příchozí požadavky.
Aktualizace konfigurace probíhá asynchronně ke zpracování příchozích požadavků vaší aplikace. Příchozí požadavek, který aktivoval aktualizaci, nezablokuje ani nezpomalí. Požadavek, který aktivoval aktualizaci, nemusí získat aktualizované hodnoty konfigurace, ale později požadavky získají nové hodnoty konfigurace.
Spuštění aplikace
Znovu spusťte server HTTP:
node server.jsNavštivte a ověřte
http://localhost:3000odpověď, která jemessageklíčem v obchodě App Configuration Store.
Aktualizujte následující hodnoty klíče do úložiště konfigurace Aplikace Azure. Aktualizujte hodnotu klíče
message.Klíč Hodnota Popisek Typ obsahu zpráva Hello World - aktualizováno! Nechejte prázdné. Nechejte prázdné. Přibližně po 15 sekundách aktualizujte stránku několikrát a zpráva by se měla aktualizovat.
Vyčištění prostředků
Pokud nechcete dál používat prostředky vytvořené v tomto článku, odstraňte skupinu prostředků, kterou jste tady vytvořili, abyste se vyhnuli poplatkům.
Důležité
Odstranění skupiny prostředků je nevratné. Skupina prostředků a všechny prostředky v ní se trvale odstraní. Ujistěte se, že omylem neodstraníte nesprávnou skupinu prostředků nebo prostředky. Pokud jste vytvořili prostředky pro tento článek ve skupině prostředků, která obsahuje další prostředky, které chcete zachovat, odstraňte jednotlivé prostředky z příslušného podokna místo odstranění skupiny prostředků.
- Přihlaste se k webu Azure Portal a vyberte skupiny prostředků.
- Do pole Filtrovat podle názvu zadejte název vaší skupiny prostředků.
- V seznamu výsledků vyberte název skupiny prostředků, abyste zobrazili přehled.
- Vyberte Odstranit skupinu prostředků.
- Zobrazí se výzva k potvrzení odstranění skupiny prostředků. Potvrďte název skupiny prostředků a vyberte Odstranit.
Po chvíli se skupina prostředků a všechny její prostředky odstraní.
Další kroky
V tomto kurzu jste povolili aplikaci v JavaScriptu, aby dynamicky aktualizovala nastavení konfigurace z Aplikace Azure Konfigurace. Pokud chcete zjistit, jak pomocí spravované identity Azure zjednodušit přístup ke konfiguraci Aplikace Azure, pokračujte dalším kurzem.
Úplný přehled funkcí knihovny zprostředkovatele konfigurace JavaScriptu najdete v následujícím dokumentu.