Delen via


Quickstart: Een Node.js-console-app maken met Azure-app Configuration

In deze quickstart gebruikt u Azure-app Configuration om de opslag en het beheer van toepassingsinstellingen te centraliseren met behulp van de clientbibliotheek van de Azure-app Configuratie-JavaScript-provider.

App Configuration-provider voor JavaScript is gebouwd boven op de Azure SDK voor JavaScript en is ontworpen om gemakkelijker te gebruiken met uitgebreidere functies. Hiermee kunt u toegang krijgen tot sleutelwaarden in App Configuration als een Map object. Het biedt functies zoals configuratiesamenstelling van meerdere labels, het bijsnijden van sleutelvoorvoegsels, automatische resolutie van Key Vault-verwijzingen en nog veel meer. In deze zelfstudie ziet u bijvoorbeeld hoe u de JavaScript-provider gebruikt in een Node.js-app.

Vereisten

Sleutelwaarden toevoegen

Voeg de volgende sleutelwaarden toe aan het App Configuration-archief. 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 Weergegeven als Inhoudstype
bericht Bericht van Azure-app-configuratie Leeg laten
app.greeting Hello World Leeg laten
app.json {"myKey":"myValue"} application/json

Een Node.js-console-app maken

In deze zelfstudie maakt u een Node.js console-app en laadt u gegevens uit uw App Configuration-archief.

  1. Maak een nieuwe map voor het project met de naam app-configuration-quickstart.

    mkdir app-configuration-quickstart
    
  2. Schakel over naar de zojuist gemaakte map app-configuration-quickstart.

    cd app-configuration-quickstart
    
  3. Installeer de Azure-app Configuration-provider met behulp van de npm install opdracht.

    npm install @azure/app-configuration-provider
    

Verbinding maken met een App Configuration-archief

In de volgende voorbeelden ziet u hoe u configuratiegegevens ophaalt uit Azure-app Configuratie en deze gebruikt in uw toepassing. Standaard worden de sleutelwaarden geladen als een Map object, zodat u toegang hebt tot elke sleutelwaarde met behulp van de volledige sleutelnaam. Als uw toepassing echter gebruikmaakt van configuratieobjecten, kunt u de constructConfigurationObject helper-API gebruiken waarmee een configuratieobject wordt gemaakt op basis van de sleutelwaarden die zijn geladen vanuit Azure-app-configuratie.

Maak een bestand met de naam app.js in de map app-configuration-quickstart en kopieer de code uit elk voorbeeld.

Voorbeeld 1: Sleutelwaarden laden met standaardkiezer

In dit voorbeeld maakt u verbinding met Azure-app Configuratie en laadt u sleutelwaarden zonder geavanceerde opties op te geven. Standaard worden alle sleutelwaarden zonder label geladen. U kunt verbinding maken met uw App Configuration-archief met behulp van Microsoft Entra ID (aanbevolen) of een verbindingsreeks.

U gebruikt de DefaultAzureCredential app om u te verifiëren bij uw App Configuration-archief. Volg de instructies om uw referenties toe te wijzen aan de rol App Configuration Data Reader . Zorg ervoor dat u voldoende tijd hebt om de machtiging door te geven voordat u de toepassing uitvoert.

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() {
    console.log("Sample 1: Load key-values with default selector");

    // Connect to Azure App Configuration using a token credential and load all key-values with null label.
    const settings = await load(endpoint, credential);

    console.log("---Consume configuration as a Map---");
    // Find the key "message" and print its value.
    console.log('settings.get("message"):', settings.get("message"));           // settings.get("message"): Message from Azure App Configuration
    // Find the key "app.greeting" and print its value.
    console.log('settings.get("app.greeting"):', settings.get("app.greeting")); // settings.get("app.greeting"): Hello World
    // Find the key "app.json" whose value is an object.
    console.log('settings.get("app.json"):', settings.get("app.json"));         // settings.get("app.json"): { myKey: 'myValue' }

    console.log("---Consume configuration as an object---");
    // Construct configuration object from loaded key-values, by default "." is used to separate hierarchical keys.
    const config = settings.constructConfigurationObject();
    // Use dot-notation to access configuration
    console.log("config.message:", config.message);             // config.message: Message from Azure App Configuration
    console.log("config.app.greeting:", config.app.greeting);   // config.app.greeting: Hello World
    console.log("config.app.json:", config.app.json);           // config.app.json: { myKey: 'myValue' }
}

run().catch(console.error);

Voorbeeld 2: Specifieke sleutelwaarden laden met behulp van selectors

In dit voorbeeld laadt u een subset van sleutelwaarden door de selectors optie op te geven. Alleen sleutels die beginnen met 'app', worden geladen. U kunt meerdere selectors opgeven op basis van uw behoeften, elk met keyFilter en labelFilter eigenschappen.

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() {
    console.log("Sample 2: Load specific key-values using selectors");

    // Load a subset of keys starting with "app." prefix.
    const settings = await load(endpoint, credential, {
        selectors: [{
            keyFilter: "app.*"
        }],
    });

    console.log("---Consume configuration as a Map---");
    // The key "message" is not loaded as it does not start with "app."
    console.log('settings.has("message"):', settings.has("message"));           // settings.has("message"): false
    // The key "app.greeting" is loaded
    console.log('settings.has("app.greeting"):', settings.has("app.greeting")); // settings.has("app.greeting"): true
    // The key "app.json" is loaded
    console.log('settings.has("app.json"):', settings.has("app.json"));         // settings.has("app.json"): true

    console.log("---Consume configuration as an object---");
    // Construct configuration object from loaded key-values
    const config = settings.constructConfigurationObject({ separator: "." });
    // Use dot-notation to access configuration
    console.log("config.message:", config.message);         // config.message: undefined
    console.log("config.app.greeting:", config.app.greeting);   // config.app.greeting: Hello World
    console.log("config.app.json:", config.app.json);           // config.app.json: { myKey: 'myValue' }
}

run().catch(console.error);

Voorbeeld 3: Sleutelwaarden laden en voorvoegsel bijsnijden van sleutels

In dit voorbeeld laadt u sleutelwaarden met een optie trimKeyPrefixes. Nadat sleutelwaarden zijn geladen, wordt het voorvoegsel 'app'. afgekapt van alle sleutels. Dit is handig wanneer u configuraties wilt laden die specifiek zijn voor uw toepassing door te filteren op een bepaald sleutelvoorvoegsel, maar u niet wilt dat uw code het voorvoegsel elke keer dat deze de configuratie opent, het voorvoegsel bevat.

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() {
    console.log("Sample 3: Load key-values and trim prefix from keys");

    // Load all key-values with no label, and trim "app." prefix from all keys.
    const settings = await load(endpoint, credential, {
        selectors: [{
            keyFilter: "app.*"
        }],
        trimKeyPrefixes: ["app."]
    });

    console.log("---Consume configuration as a Map---");
    // The original key "app.greeting" is trimmed as "greeting".
    console.log('settings.get("greeting"):', settings.get("greeting")); // settings.get("greeting"): Hello World
    // The original key "app.json" is trimmed as "json".
    console.log('settings.get("json"):', settings.get("json"));         // settings.get("json"): { myKey: 'myValue' }

    console.log("---Consume configuration as an object---");
    // Construct configuration object from loaded key-values with trimmed keys.
    const config = settings.constructConfigurationObject();
    // Use dot-notation to access configuration
    console.log("config.greeting:", config.greeting);   // config.greeting: Hello World
    console.log("config.json:", config.json);           // config.json: { myKey: 'myValue' }
}

run()

De toepassing uitvoeren

  1. Stel de omgevingsvariabele in.

    Stel de omgevingsvariabele met de naam AZURE_APPCONFIG_ENDPOINT in op het eindpunt van uw App Configuration-archief in het overzicht van uw winkel in Azure Portal.

    Als u de Windows-opdrachtprompt gebruikt, voert u de volgende opdracht uit en start u de opdrachtprompt opnieuw om de wijziging door te voeren:

    setx AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"
    

    Als u PowerShell gebruikt, voert u de volgende opdracht uit:

    $Env:AZURE_APPCONFIG_ENDPOINT = "<endpoint-of-your-app-configuration-store>"
    

    Als u macOS of Linux gebruikt, voert u de volgende opdracht uit:

    export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'
    
  2. Nadat de omgevingsvariabele juist is ingesteld, voert u de volgende opdracht uit om de app lokaal uit te voeren:

    node app.js
    

    U ziet de volgende uitvoer voor elk voorbeeld:

    Voorbeeld 1

    Sample 1: Load key-values with default selector
    ---Consume configuration as a Map---
    settings.get("message"): Message from Azure App Configuration
    settings.get("app.greeting"): Hello World
    settings.get("app.json"): { myKey: 'myValue' }
    ---Consume configuration as an object---
    config.message: Message from Azure App Configuration
    config.app.greeting: Hello World
    config.app.json: { myKey: 'myValue' }
    

    Voorbeeld 2

    Sample 2: Load specific key-values using selectors
    ---Consume configuration as a Map---
    settings.has("message"): false
    settings.has("app.greeting"): true
    settings.has("app.json"): true
    ---Consume configuration as an object---
    config.message: undefined
    config.app.greeting: Hello World
    config.app.json: { myKey: 'myValue' }
    

    Voorbeeld 3

    Sample 3: Load key-values and trim prefix from keys
    ---Consume configuration as a Map---
    settings.get("greeting"): Hello World
    settings.get("json"): { myKey: 'myValue' }
    ---Consume configuration as an object---
    config.greeting: Hello World
    config.json: { myKey: 'myValue' }
    

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 quickstart hebt u een nieuw App Configuration-archief gemaakt en geleerd hoe u toegang krijgt tot sleutelwaarden met behulp van de App Configuration JavaScript-provider in een Node.js-app. Als u wilt weten hoe u uw app configureert voor het dynamisch vernieuwen van configuratie-instellingen, gaat u verder met de volgende zelfstudie.