Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här självstudien får du lära dig hur du aktiverar dynamisk konfiguration i dina JavaScript-program. Exemplet i den här självstudien bygger på exempelprogrammet som introducerades i JavaScript-snabbstarten. Slutför Skapa en JavaScript-app med Azure App Configuration innan du fortsätter.
Förutsättningar
- Slutför snabbstarten Skapa en JavaScript-app med Azure App Configuration.
-
@azure/app-configuration-providerUppdatera paketet till version 2.0.0 eller senare.
Lägga till nyckelvärden
Lägg till följande nyckelvärde i Azure App Configuration Store. Mer information om hur du lägger till nyckelvärden i ett arkiv med hjälp av Azure Portal eller CLI finns i Skapa ett nyckelvärde.
| Tangent | Värde | Etikett | Innehållstyp |
|---|---|---|---|
| meddelande | Hej världen! | Lämna tom | Lämna tom |
Konsolprogram
Följande exempel visar hur du använder uppdateringsbara konfigurationsvärden i konsolprogram.
Välj följande instruktioner baserat på hur ditt program använder konfigurationsdata som lästs in från App Configuration, antingen som ett Map eller ett konfigurationsobjekt.
Läsa in data från App Configuration
Du kan ansluta till App Configuration med antingen Microsoft Entra-ID (rekommenderas) eller en anslutningssträng. Följande kodfragment visar hur du använder Microsoft Entra-ID. Du använder StandardAzureCredential för att autentisera till appkonfigurationsarkivet. När du slutförde snabbstarten som anges i förhandskraven har du redan tilldelat autentiseringsuppgifterna rollen AppKonfigurationsdataläsare.
Öppna filen app.js och uppdatera
loadfunktionen. Lägg till enrefreshOptionsparameter för att aktivera uppdatering och konfigurera uppdateringsalternativ. Den inlästa konfigurationen uppdateras när en ändring identifieras på servern. Som standard används ett uppdateringsintervall på 30 sekunder, men du kan åsidosätta det medrefreshIntervalInMsegenskapen .// Connecting to Azure App Configuration using endpoint and token credential const appConfig = await load(endpoint, credential, { // Enabling the dynamic refresh refreshOptions: { enabled: true } });Kommentar
Om du får felet "Uppdatera är aktiverat men inga övervakade inställningar har angetts.", uppdaterar
@azure/app-configuration-providerdu paketet till version 2.0.0 eller senare.Tips/Råd
Mer information om hur du övervakar konfigurationsändringar finns i Metodtips för konfigurationsuppdatering.
Konfigurationen uppdateras inte automatiskt när du konfigurerar
refreshOptionsden. Du måste anroparefreshmetoden för att utlösa en uppdatering. Den här designen förhindrar onödiga begäranden till App Configuration när programmet är inaktivt. Du bör inkludera anropet där programaktivitetenrefreshinträffar. Detta kallas aktivitetsdriven konfigurationsuppdatering. Du kan till exempel anroparefreshnär du bearbetar ett inkommande meddelande eller en order, eller i en iteration där du utför en komplex uppgift. Du kan också använda en timer om programmet alltid är aktivt. I det här exempletrefreshanropas i en loop i demonstrationssyfte. Även om anropetrefreshmisslyckas av någon anledning fortsätter programmet att använda den cachelagrade konfigurationen. Ett annat försök görs när det konfigurerade uppdateringsintervallet har passerat och anropet utlöses av programaktivitetenrefresh. Anroprefreshär en no-op innan det konfigurerade uppdateringsintervallet förflutit, så dess prestandapåverkan är minimal även om den anropas ofta.Lägg till följande kod för att avsöka konfigurationsändringar av övervakade nyckelvärden.
// 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 }Nu bör filen app.js se ut som följande kodfragment:
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://free.blessedness.top/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);
Kör appen
Kör skriptet:
node app.jsVerifiera utdata:
Hello World!Den fortsätter att skriva ut "Hello World!" på en ny rad var 5:e sekund.
Uppdatera följande nyckelvärden till Azure App Configuration Store. Uppdatera värdet för nyckeln
message.Tangent Värde Etikett Innehållstyp meddelande Hello World - Uppdaterad! Lämna tom Lämna tom När värdena har uppdaterats skrivs det uppdaterade värdet ut efter uppdateringsintervallet.
Hello World - Updated!
Serverprogram
I följande exempel visas hur du uppdaterar en befintlig http-server för att använda uppdateringsbara konfigurationsvärden.
Skapa en ny JavaScript-fil med namnet
server.jsoch lägg till följande kod: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();Kör skriptet:
node server.jsBesök
http://localhost:3000så ser du svaret:
Läsa in data från App Configuration
server.jsUppdatera för att använda App Configuration och aktivera dynamisk uppdatering: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://free.blessedness.top/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());
Uppdatering av begärd konfiguration
I de flesta fall kan uppdateringsåtgärden för appkonfigurationsprovidern behandlas som en no-op. Den skickar bara begäranden om att kontrollera värdet i App Configuration när uppdateringsintervalltiden som du anger har passerat.
Vi rekommenderar att du implementerar en uppdatering av den begärandedrivna konfigurationen för ditt webbprogram. Konfigurationsuppdateringen utlöses av inkommande begäranden till webbappen. Ingen uppdatering sker om appen är inaktiv när det inte finns någon inkommande begäran. När appen är aktiv kan du använda ett mellanprogram eller liknande för att utlösa anropet appConfig.refresh() vid varje inkommande begäran till ditt program.
Om en begäran till App Configuration för ändringsidentifiering misslyckas fortsätter appen att använda den cachelagrade konfigurationen. Nya försök att söka efter ändringar görs regelbundet medan det finns nya inkommande begäranden till din app.
Konfigurationsuppdateringen sker asynkront vid bearbetningen av appens inkommande begäranden. Den blockerar eller saktar inte ned den inkommande begäran som utlöste uppdateringen. Begäran som utlöste uppdateringen kanske inte hämtar de uppdaterade konfigurationsvärdena, men senare begäranden får nya konfigurationsvärden.
Kör appen
Starta om http-servern:
node server.jsBesök
http://localhost:3000och verifiera svaret som ärmessagenyckeln i appkonfigurationsarkivet.
Uppdatera följande nyckelvärden till Azure App Configuration Store. Uppdatera värdet för nyckeln
message.Tangent Värde Etikett Innehållstyp meddelande Hello World - Uppdaterad! Lämna tom Lämna tom Efter cirka 15 sekunder uppdaterar du sidan flera gånger och meddelandet ska uppdateras.
Rensa resurser
Om du inte vill fortsätta använda resurserna som skapas i den här artikeln tar du bort resursgruppen som du skapade här för att undvika avgifter.
Viktigt!
Att ta bort en resursgrupp kan inte ångras. Resursgruppen och alla resurser i den tas bort permanent. Se till att du inte oavsiktligt tar bort fel resursgrupp eller resurser. Om du har skapat resurserna för den här artikeln i en resursgrupp som innehåller andra resurser som du vill behålla tar du bort varje resurs individuellt från respektive fönster i stället för att ta bort resursgruppen.
- Logga in på Azure Portal och välj Resursgrupper.
- I rutan Filtrera efter namn anger du namnet på resursgruppen.
- I resultatlistan väljer du resursgruppens namn för att se en översikt.
- Välj Ta bort resursgrupp.
- Du blir ombedd att bekräfta borttagningen av resursgruppen. Ange namnet på resursgruppen för att bekräfta och välj Ta bort.
Efter en liten stund tas resursgruppen och alla dess resurser bort.
Nästa steg
I den här självstudien har du aktiverat JavaScript-appen för att dynamiskt uppdatera konfigurationsinställningarna från Azure App Configuration. Om du vill lära dig hur du använder en hanterad Azure-identitet för att effektivisera åtkomsten till Azure App Configuration fortsätter du till nästa självstudie.
För den fullständiga funktionskörningen av JavaScript-konfigurationsproviderbiblioteket fortsätter du till följande dokument.