Självstudie: Använda dynamisk konfiguration i JavaScript
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.
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 |
vaktpost | 1 | Lämna tom | Lämna tom |
Kommentar
En sentinel-nyckel är en nyckel som du uppdaterar när du har slutfört ändringen av alla andra nycklar. Appen övervakar sentinel-nyckeln. När en ändring identifieras uppdaterar appen alla konfigurationsvärden. Den här metoden hjälper till att säkerställa konsekvensen i konfigurationen i din app och minskar det totala antalet begäranden som görs till Azure App Configuration Store, jämfört med övervakning av alla nycklar för ändringar.
Läsa in data på nytt från App Configuration
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.
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
load
funktionen. Lägg till enrefreshOptions
parameter 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 medrefreshIntervalInMs
egenskapen .// Connecting to Azure App Configuration using endpoint and token credential const settings = await load(endpoint, credential, { // Setting up to refresh when the sentinel key is changed refreshOptions: { enabled: true, watchedSettings: [{ key: "sentinel" }] // Watch for changes to the key "sentinel" and refreshes the configuration when it changes } });
Konfigurationen uppdateras inte automatiskt när du konfigurerar
refreshOptions
den. Du måste anroparefresh
metoden 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 programaktivitetenrefresh
inträffar. Detta kallas aktivitetsdriven konfigurationsuppdatering. Du kan till exempel anroparefresh
nä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 exempletrefresh
anropas i en loop i demonstrationssyfte. Även om anropetrefresh
misslyckas 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) { await sleepInMs(5000); // Waiting before the next refresh await settings.refresh(); // Refreshing the configuration setting console.log(settings.get("message")); // Consume current value of message from a Map }
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://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 settings = await load(endpoint, credential, { // Setting up to refresh when the sentinel key is changed refreshOptions: { enabled: true, watchedSettings: [{ key: "sentinel" }] // Watch for changes to the key "sentinel" and refreshes the configuration when it changes } }); // Polling for configuration changes every 5 seconds while (true) { await sleepInMs(5000); // Waiting before the next refresh await settings.refresh(); // Refreshing the configuration setting console.log(settings.get("message")); // Consume current value of message from a Map } } run().catch(console.error);
Kör appen
Kör skriptet:
node app.js
Verifiera 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
först och sedansentinel
.Tangent Värde Etikett Innehållstyp meddelande Hello World - Uppdaterad! Lämna tom Lämna tom vaktpost 2 Lämna tom Lämna tom När värdena har uppdaterats skrivs det uppdaterade värdet ut efter uppdateringsintervallet.
Hello World - Updated!
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.