Schnellstart: Erstellen einer Node.js-Konsolen-App mit Azure App-Konfiguration
In diesem Schnellstart verwenden Sie Azure App Configuration zum Zentralisieren der Speicherung und Verwaltung von Anwendungseinstellungen mit der Clientbibliothek des JavaScript-Anbieters von Azure App Configuration.
Der App Configuration-Anbieter für JavaScript basiert auf dem Azure SDK für JavaScript und ist so konzipiert, dass der mit umfangreichen Features einfacher zu verwenden ist.
Er ermöglicht den Zugriff auf Schlüsselwerte in App Configuration als Map
-Objekt.
Er bietet Features wie die Konfigurationskomposition aus mehreren Bezeichnungen, die Kürzung von Schlüsselpräfixen, die automatische Auflösung von Key Vault-Verweisen und vieles mehr.
Als Beispiel wird in diesem Tutorial gezeigt, wie Sie den JavaScript-Anbieter in einer Node.js-App verwenden.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Erstellen Sie ein kostenloses Konto.
- Ein App Configuration-Speicher. Hier finden Sie Informationen zum Erstellen eines Speichers.
- LTS-Versionen von Node.js. Informationen zum Installieren von Node.js direkt unter Windows oder mithilfe des Windows-Subsystems für Linux (WSL) finden Sie unter Was ist NodeJS?.
Schlüsselwerte hinzufügen
Fügen Sie dem App Configuration-Speicher die folgenden Schlüsselwerte hinzu. Weitere Informationen zum Hinzufügen von Schlüssel-Wert-Paaren zu einem Speicher mithilfe des Azure-Portals oder der CLI finden Sie unter Erstellen eines Schlüssel-Wert-Paars.
Schlüssel | Wert | Inhaltstyp |
---|---|---|
Nachricht | Nachricht von Azure App Configuration | Leer lassen |
app.greeting | Hello World | Leer lassen |
app.json | {"myKey":"myValue"} | Anwendung/json |
Erstellen einer Node.js-Konsolen-App
In diesem Tutorial erstellen Sie eine Node.js-Konsolen-App und laden Daten aus Ihrem App Configuration-Speicher.
Erstellen Sie ein neues Verzeichnis für das Projekt mit dem Namen app-configuration-quickstart.
mkdir app-configuration-quickstart
Wechseln Sie zum neu erstellten Verzeichnis app-configuration-quickstart.
cd app-configuration-quickstart
Installieren Sie den Azure App Configuration-Anbieter mit dem Befehl
npm install
.npm install @azure/app-configuration-provider
Herstellen einer Verbindung mit einem App Configuration-Speicher
Die folgenden Beispiele veranschaulichen, wie Konfigurationsdaten aus Azure App Configuration abgerufen und in Ihrer Anwendung verwendet werden.
Standardmäßig werden die Schlüsselwerte als Map
-Objekt geladen, sodass Sie mithilfe des vollständigen Schlüsselnamens auf jeden Schlüsselwert zugreifen können.
Wenn Ihre Anwendung jedoch Konfigurationsobjekte verwendet, können Sie die constructConfigurationObject
-Hilfs-API verwenden. Sie erstellt ein Konfigurationsobjekt basierend auf den Schlüsselwerten, die aus Azure App Configuration geladen wurden.
Erstellen Sie im Verzeichnis app-configuration-quickstart eine Datei mit dem Namen app.js, und kopieren Sie den Code aus dem Beispiel.
Beispiel 1: Laden von Schlüsselwerten mit Standardauswahl
In diesem Beispiel stellen Sie eine Verbindung mit Azure App Configuration her und laden Schlüsselwerte, ohne erweiterte Optionen anzugeben. Standardmäßig werden alle Schlüsselwerte ohne Bezeichnung geladen. Sie können eine Verbindung mit Ihrem App Configuration-Speicher entweder mithilfe von Microsoft Entra ID (empfohlen) oder mit einer Verbindungszeichenfolge herstellen.
Sie verwenden die DefaultAzureCredential
für die Authentifizierung beim App Configuration-Speicher. Befolgen Sie die Anweisungen, um Ihre Anmeldeinformationen der Rolle App Configuration-Datenleser zuzuweisen. Achten Sie darauf, ausreichend Zeit für die Verteilung der Berechtigung zu warten, bevor Sie Ihre Anwendung ausführen.
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://zcusa.951200.xyz/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);
Beispiel 2: Laden bestimmter Schlüsselwerte mithilfe von Selektoren
In diesem Beispiel laden Sie eine Teilmenge von Schlüsselwerten, indem Sie die Option selectors
angeben.
Es werden nur Schlüssel geladen, die mit „app.“ beginnen.
Beachten Sie, dass Sie je nach Ihren Anforderungen mehrere Selektoren angeben können, die jeweils keyFilter
- und labelFilter
-Eigenschaften enthalten.
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://zcusa.951200.xyz/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);
Beispiel 3: Laden von Schlüsselwerten und Kürzen des Präfixes von Schlüsseln
In diesem Beispiel laden Sie Schlüsselwerte mit einer Option trimKeyPrefixes
.
Nachdem Schlüsselwerte geladen wurden, wird das Präfix „app.“ von allen Schlüsseln gekürzt.
Dies ist nützlich, wenn Sie Konfigurationen laden möchten, die für Ihre Anwendung spezifisch sind, indem Sie nach einem bestimmten Schlüsselpräfix filtern, Sie aber nicht möchten, dass Ihr Code das Präfix bei jedem Zugriff auf die Konfiguration tragen soll.
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://zcusa.951200.xyz/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()
Ausführen der Anwendung
Legen Sie die Umgebungsvariable fest.
Legen Sie die Umgebungsvariable AZURE_APPCONFIG_ENDPOINT auf den Endpunkt Ihres App Configuration-Speichers fest, den Sie in der Übersicht Ihres Speichers im Azure-Portal finden.
Führen Sie bei Verwendung einer Windows-Eingabeaufforderung den folgenden Befehl aus, und starten Sie die Eingabeaufforderung neu, damit die Änderung wirksam wird:
setx AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"
Wenn Sie PowerShell verwenden, und führen Sie den folgenden Befehl aus:
$Env:AZURE_APPCONFIG_ENDPOINT = "<endpoint-of-your-app-configuration-store>"
Führen Sie bei Verwendung von macOS oder Linux den folgenden Befehl aus:
export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'
Nachdem die Umgebungsvariable ordnungsgemäß festgelegt wurde, führen Sie den folgenden Befehl aus, um die App lokal auszuführen:
node app.js
Daraufhin sollte die folgende Ausgabe für jedes Beispiel angezeigt werden:
Beispiel 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' }
Beispiel 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' }
Beispiel 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' }
Bereinigen von Ressourcen
Wenn Sie die in diesem Artikel erstellten Ressourcen nicht mehr verwenden möchten, löschen Sie die erstellte Ressourcengruppe, um Kosten zu vermeiden.
Wichtig
Das Löschen einer Ressourcengruppe kann nicht rückgängig gemacht werden. Die Ressourcengruppe und alle darin enthaltenen Ressourcen werden unwiderruflich gelöscht. Achten Sie daher darauf, dass Sie nicht versehentlich die falsche Ressourcengruppe oder die falschen Ressourcen löschen. Falls Sie die Ressourcen für diesen Artikel in einer Ressourcengruppe erstellt haben, die andere beizubehaltende Ressourcen enthält, löschen Sie die Ressourcen einzeln über den entsprechenden Bereich, statt die Ressourcengruppe zu löschen.
- Melden Sie sich beim Azure-Portal an, und klicken Sie auf Ressourcengruppen.
- Geben Sie im Feld Nach Name filtern den Namen Ihrer Ressourcengruppe ein.
- Wählen Sie in der Ergebnisliste den Ressourcengruppennamen aus, um eine Übersicht anzuzeigen.
- Wählen Sie die Option Ressourcengruppe löschen.
- Sie werden aufgefordert, das Löschen der Ressourcengruppe zu bestätigen. Geben Sie zur Bestätigung den Namen Ihrer Ressourcengruppe ein, und klicken Sie auf Löschen.
Daraufhin werden die Ressourcengruppe und alle darin enthaltenen Ressourcen gelöscht.
Nächste Schritte
In diesem Schnellstart haben Sie einen neuen App Configuration-Speicher erstellt und gelernt, wie Sie mithilfe des JavaScript-Anbieters von App Configuration in einer Node.js-App auf Schlüsselwerte zugreifen. Fahren Sie mit dem nächsten Tutorial fort, um zu erfahren, wie Sie Ihre App für das dynamische Aktualisieren der Konfigurationseinstellungen konfigurieren.