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
- Een Azure-account met een actief abonnement. Maak gratis een account.
- Een App Configuration-archief. Een winkel maken.
- LTS-versies van Node.js. Zie Aan de slag met Node.js voor informatie over het installeren van Node.js rechtstreeks in Windows of het gebruik van de Windows-subsysteem voor Linux (WSL).
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.
Maak een nieuwe map voor het project met de naam app-configuration-quickstart.
mkdir app-configuration-quickstart
Schakel over naar de zojuist gemaakte map app-configuration-quickstart.
cd app-configuration-quickstart
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
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>'
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.
- Meld u aan bij de Azure-portal en selecteer Resourcegroepen.
- Voer de naam van de resourcegroep in het vak Filteren op naam in.
- Selecteer in de resultatenlijst de resourcegroepnaam om een overzicht te bekijken.
- Selecteer Resourcegroep verwijderen.
- 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.