Szybki start: tworzenie aplikacji konsolowej Node.js przy użyciu usługi aplikacja systemu Azure Configuration
W tym przewodniku Szybki start użyjesz aplikacja systemu Azure Configuration do scentralizowanego przechowywania ustawień aplikacji i zarządzania nimi przy użyciu biblioteki klienta dostawcy aplikacja systemu Azure Configuration JavaScript.
Dostawca usługi App Configuration dla języka JavaScript jest oparty na zestawie Azure SDK dla języka JavaScript i został zaprojektowany tak, aby był łatwiejszy w użyciu z bardziej zaawansowanymi funkcjami.
Umożliwia ona dostęp do klucz-wartości w usłudze App Configuration jako Map
obiektu.
Oferuje funkcje, takie jak kompozycja konfiguracji z wielu etykiet, przycinanie prefiksów kluczy, automatyczne rozpoznawanie odwołań usługi Key Vault i wiele innych.
Na przykład w tym samouczku pokazano, jak używać dostawcy języka JavaScript w aplikacji Node.js.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz je bezpłatnie.
- Magazyn usługi App Configuration. Utwórz magazyn.
- Wersje ltS Node.js. Aby uzyskać informacje na temat instalowania Node.js bezpośrednio w systemie Windows lub korzystania z Podsystem Windows dla systemu Linux (WSL), zobacz Wprowadzenie do Node.js
Dodawanie wartości klucz-wartość
Dodaj następujące wartości klucza do magazynu App Configuration. Aby uzyskać więcej informacji na temat dodawania wartości klucz-wartości do magazynu przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia, przejdź do artykułu Create a key-value (Tworzenie wartości klucza).
Key | Wartość | Typ zawartości |
---|---|---|
message | Komunikat z konfiguracji aplikacja systemu Azure | Pozostaw pole puste |
app.greeting | Witaj, świecie | Pozostaw pole puste |
app.json | {"myKey":"myValue"} | application/json |
Tworzenie aplikacji konsolowej Node.js
W tym samouczku utworzysz aplikację konsolową Node.js i załadujesz dane ze sklepu App Configuration.
Utwórz nowy katalog dla projektu o nazwie app-configuration-quickstart.
mkdir app-configuration-quickstart
Przejdź do nowo utworzonego katalogu app-configuration-quickstart .
cd app-configuration-quickstart
Zainstaluj dostawcę aplikacja systemu Azure Configuration przy użyciu
npm install
polecenia .npm install @azure/app-configuration-provider
Nawiązywanie połączenia z magazynem usługi App Configuration
W poniższych przykładach pokazano, jak pobrać dane konfiguracji z aplikacja systemu Azure Configuration i wykorzystać je w aplikacji.
Domyślnie wartości klucza są ładowane jako Map
obiekt, co pozwala uzyskać dostęp do każdej wartości klucza przy użyciu jego pełnej nazwy klucza.
Jeśli jednak aplikacja używa obiektów konfiguracji, możesz użyć interfejsu constructConfigurationObject
API pomocnika, który tworzy obiekt konfiguracji na podstawie wartości klucza załadowanych z aplikacja systemu Azure Configuration.
Utwórz plik o nazwie app.js w katalogu app-configuration-quickstart i skopiuj kod z każdego przykładu.
Przykład 1. Ładowanie wartości klucz-wartości przy użyciu selektora domyślnego
W tym przykładzie nawiąż połączenie z usługą aplikacja systemu Azure Konfiguracja i załaduj wartości kluczy bez określania opcji zaawansowanych. Domyślnie ładuje wszystkie wartości klucza bez etykiety. Możesz nawiązać połączenie ze sklepem App Configuration przy użyciu identyfikatora Entra firmy Microsoft (zalecane) lub parametry połączenia.
Użyj polecenia DefaultAzureCredential
, aby uwierzytelnić się w magazynie usługi App Configuration. Postępuj zgodnie z instrukcjami, aby przypisać poświadczenia roli Czytelnik danych konfiguracji aplikacji. Przed uruchomieniem aplikacji należy zezwolić na wystarczający czas na propagację uprawnień.
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);
Przykład 2. Ładowanie określonych klucz-wartości przy użyciu selektorów
W tym przykładzie załadujesz podzbiór klucz-wartości, określając selectors
opcję.
Ładowane są tylko klucze rozpoczynające się od "aplikacji".
Należy pamiętać, że można określić wiele selektorów w zależności od potrzeb, z których każda ma keyFilter
właściwości i labelFilter
.
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);
Przykład 3. Ładowanie wartości kluczy i prefiksu przycinania z kluczy
W tym przykładzie załadujesz klucz-wartości za pomocą opcji trimKeyPrefixes
.
Po załadowaniu wartości klucza prefiks "aplikacja" zostanie przycięty ze wszystkich kluczy.
Jest to przydatne, gdy chcesz załadować konfiguracje specyficzne dla aplikacji przez filtrowanie do określonego prefiksu klucza, ale nie chcesz, aby kod był przenoszony z prefiksem za każdym razem, gdy uzyskuje dostęp do konfiguracji.
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()
Uruchamianie aplikacji
Ustaw zmienną środowiskową .
Ustaw zmienną środowiskową o nazwie AZURE_APPCONFIG_ENDPOINT na punkt końcowy sklepu App Configuration znajdującego się w obszarze Przegląd sklepu w witrynie Azure Portal.
Jeśli używasz wiersza polecenia systemu Windows, uruchom następujące polecenie i uruchom ponownie wiersz polecenia, aby zezwolić na wprowadzenie zmian:
setx AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"
Jeśli używasz programu PowerShell, uruchom następujące polecenie:
$Env:AZURE_APPCONFIG_ENDPOINT = "<endpoint-of-your-app-configuration-store>"
Jeśli używasz systemu macOS lub Linux, uruchom następujące polecenie:
export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'
Po poprawnym ustawieniu zmiennej środowiskowej uruchom następujące polecenie, aby uruchomić aplikację lokalnie:
node app.js
Powinny zostać wyświetlone następujące dane wyjściowe dla każdego przykładu:
Przykład 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' }
Przykład 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' }
Przykład 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' }
Czyszczenie zasobów
Jeśli nie chcesz nadal korzystać z zasobów utworzonych w tym artykule, usuń utworzoną tutaj grupę zasobów, aby uniknąć naliczania opłat.
Ważne
Usunięcie grupy zasobów jest nieodwracalne. Grupa zasobów i wszystkie zasoby w niej są trwale usuwane. Upewnij się, że nie usuniesz przypadkowo nieprawidłowej grupy zasobów ani zasobów. Jeśli zasoby dla tego artykułu zostały utworzone w grupie zasobów zawierającej inne zasoby, które chcesz zachować, usuń każdy zasób oddzielnie z odpowiedniego okienka zamiast usuwać grupę zasobów.
- Zaloguj się do witryny Azure Portal i wybierz pozycję Grupy zasobów.
- W polu Filtruj według nazwy wprowadź nazwę grupy zasobów.
- Na liście wyników wybierz nazwę grupy zasobów, aby wyświetlić przegląd.
- Wybierz pozycję Usuń grupę zasobów.
- Zobaczysz prośbę o potwierdzenie usunięcia grupy zasobów. Wprowadź nazwę grupy zasobów, aby potwierdzić, a następnie wybierz pozycję Usuń.
Po kilku chwilach grupa zasobów i wszystkie jej zasoby zostaną usunięte.
Następne kroki
W tym przewodniku Szybki start utworzono nowy magazyn usługi App Configuration i przedstawiono sposób uzyskiwania dostępu do par klucz-wartości przy użyciu dostawcy JavaScript usługi App Configuration w aplikacji Node.js. Aby dowiedzieć się, jak skonfigurować aplikację do dynamicznego odświeżania ustawień konfiguracji, przejdź do następnego samouczka.