Delen via


Zelfstudie: Dynamische configuratie gebruiken in JavaScript

In deze zelfstudie leert u hoe u dynamische configuratie inschakelt in uw JavaScript-toepassingen. Het voorbeeld in deze zelfstudie is gebaseerd op de voorbeeldtoepassing die is geïntroduceerd in de JavaScript-quickstart. Voordat u doorgaat, voltooit u Het maken van een JavaScript-app met Azure-app-configuratie.

Vereisten

Sleutelwaarden toevoegen

Voeg de volgende sleutelwaarde toe aan het Azure-app Configuratiearchief. Ga naar Een sleutelwaarde maken voor meer informatie over het toevoegen van sleutelwaarden aan een archief met behulp van Azure Portal of de CLI.

Sleutel Waarde Label Inhoudstype
bericht Hallo wereld! Leeg laten Leeg laten
wacht 1 Leeg laten Leeg laten

Notitie

Een sentinel-sleutel is een sleutel die u bijwerkt nadat u de wijziging van alle andere sleutels hebt voltooid. Uw app bewaakt de sentinel-sleutel. Wanneer er een wijziging wordt gedetecteerd, vernieuwt uw app alle configuratiewaarden. Deze aanpak helpt om de consistentie van de configuratie in uw app te garanderen en vermindert het totale aantal aanvragen dat is gedaan in uw Azure-app Configuratiearchief, vergeleken met het bewaken van alle sleutels voor wijzigingen.

Gegevens opnieuw laden vanuit app-configuratie

In de volgende voorbeelden ziet u hoe u vernieuwbare configuratiewaarden gebruikt in consoletoepassingen. Kies de volgende instructies op basis van de wijze waarop uw toepassing configuratiegegevens verbruikt die vanuit App Configuration zijn geladen, hetzij als een Map of een configuratieobject.

U kunt verbinding maken met App Configuration met behulp van Microsoft Entra ID (aanbevolen) of een verbindingsreeks. Het volgende codefragment laat zien hoe u Microsoft Entra-id gebruikt. U gebruikt DefaultAzureCredential om te verifiëren bij uw App Configuration-archief. Tijdens het voltooien van de quickstart die wordt vermeld in de vereisten, hebt u uw referenties al toegewezen aan de rol App Configuration Data Reader.

  1. Open het bestand app.js en werk de load functie bij. Voeg een refreshOptions parameter toe om de vernieuwingsopties in te schakelen en te configureren. De geladen configuratie wordt bijgewerkt wanneer er een wijziging op de server wordt gedetecteerd. Standaard wordt een vernieuwingsinterval van 30 seconden gebruikt, maar u kunt dit overschrijven met de refreshIntervalInMs eigenschap.

    // 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
        }
    });
    
  2. Als u de configuratie alleen instelt refreshOptions , wordt de configuratie niet automatisch vernieuwd. U moet de refresh methode aanroepen om een vernieuwing te activeren. Dit ontwerp voorkomt onnodige aanvragen voor App Configuration wanneer uw toepassing niet actief is. Neem de refresh aanroep op waar uw toepassingsactiviteit plaatsvindt. Dit wordt ook wel activiteitgestuurde configuratievernieuwing genoemd. U kunt bijvoorbeeld aanroepen refresh bij het verwerken van een binnenkomend bericht of een order, of in een iteratie waarin u een complexe taak uitvoert. U kunt ook een timer gebruiken als uw toepassing altijd actief is. In dit voorbeeld refresh wordt een lus aangeroepen voor demonstratiedoeleinden. Zelfs als de refresh aanroep om welke reden dan ook mislukt, blijft uw toepassing de configuratie in de cache gebruiken. Er wordt nog een poging gedaan wanneer het geconfigureerde vernieuwingsinterval is verstreken en de refresh aanroep wordt geactiveerd door uw toepassingsactiviteit. Bellen refresh is een no-op voordat het geconfigureerde vernieuwingsinterval is verstreken, dus de invloed op de prestaties is minimaal, zelfs als het vaak wordt aangeroepen.

    Voeg de volgende code toe om configuratiewijzigingen van bekeken sleutelwaarden te peilen.

    // 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
    }
    
  3. Nu ziet het bestand app.js eruit als het volgende codefragment:

    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);
    

De toepassing uitvoeren

  1. Voer uw script uit:

    node app.js
    
  2. Uitvoer controleren:

    Hello World!
    

    Het blijft elke 5 seconden 'Hallo wereld!' afdrukken op een nieuwe regel.

  3. Werk de volgende sleutelwaarden bij naar het Azure-app Configuratiearchief. Werk eerst de waarde van de sleutel message bij en vervolgens sentinel.

    Sleutel Waarde Label Inhoudstype
    bericht Hallo wereld - Bijgewerkt! Leeg laten Leeg laten
    wacht 2 Leeg laten Leeg laten
  4. Zodra de waarden zijn bijgewerkt, wordt de bijgewerkte waarde na het vernieuwingsinterval afgedrukt.

    Hello World - Updated!
    

Resources opschonen

Als u de resources die in dit artikel zijn gemaakt niet wilt blijven gebruiken, verwijdert u de resourcegroep die u hier hebt gemaakt om kosten te voorkomen.

Belangrijk

Het verwijderen van een resourcegroep kan niet ongedaan worden gemaakt. De resourcegroep en alle resources daarin worden permanent verwijderd. Zorg ervoor dat u niet per ongeluk de verkeerde resourcegroep of resources verwijdert. Als u de resources voor dit artikel in een resourcegroep hebt gemaakt die andere resources bevat die u wilt behouden, moet u elke resource afzonderlijk verwijderen uit het deelvenster in plaats van dat u de resourcegroep verwijdert.

  1. Meld u aan bij de Azure-portal en selecteer Resourcegroepen.
  2. Voer de naam van de resourcegroep in het vak Filteren op naam in.
  3. Selecteer in de resultatenlijst de resourcegroepnaam om een overzicht te bekijken.
  4. Selecteer Resourcegroep verwijderen.
  5. U wordt gevraagd om het verwijderen van de resourcegroep te bevestigen. Voer de naam van de resourcegroep in ter bevestiging en selecteer Verwijderen.

Na enkele ogenblikken worden de resourcegroep en alle bijbehorende resources verwijderd.

Volgende stappen

In deze zelfstudie hebt u uw JavaScript-app ingeschakeld om configuratie-instellingen dynamisch te vernieuwen vanuit Azure-app Configuratie. Als u wilt weten hoe u een door Azure beheerde identiteit gebruikt om de toegang tot Azure-app Configuratie te stroomlijnen, gaat u verder met de volgende zelfstudie.