Udostępnij za pomocą


Quickstart: Tworzenie aplikacji konsolowej Node.js przy użyciu usługi Azure App Configuration

W tym przewodniku szybkiego startu użyjesz Azure App Configuration do scentralizowanego przechowywania ustawień aplikacji i zarządzania nimi przy użyciu biblioteki klienta dostawcy Azure App 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 dostęp do klucz-wartości w usłudze App Configuration jako obiekt Map. Oferuje funkcje, takie jak tworzenie konfiguracji z wielu etykiet, przycinanie prefiksów kluczy, automatyczne rozwiązywanie odwołań do Key Vault i wiele innych. Na przykład ten samouczek pokazuje, jak używać dostawcy JavaScript w aplikacji Node.js.

Wymagania wstępne

Dodaj pary klucz-wartość

Dodaj następujące wartości klucza do magazynu App Configuration. Aby uzyskać więcej informacji na temat dodawania par klucz-wartość do magazynu za pomocą portalu Azure lub interfejsu wiersza polecenia, przejdź do sekcji Create a key-value.

Klucz Wartość Typ zawartości
Komunikat Wiadomość z konfiguracji aplikacji 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.

  1. Utwórz nowy katalog dla projektu o nazwie app-configuration-quickstart.

    mkdir app-configuration-quickstart
    
  2. Przejdź do nowo utworzonego katalogu app-configuration-quickstart .

    cd app-configuration-quickstart
    
  3. Zainstaluj dostawcę konfiguracji aplikacji Azure przy użyciu polecenia npm install.

    npm install @azure/app-configuration-provider
    

Nawiązanie połączenia ze sklepem App Configuration

W poniższych przykładach zademonstrowano, jak wydobyć dane konfiguracji z Azure App Configuration i wykorzystać je w Twojej 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 Twoja aplikacja używa obiektów konfiguracji, możesz użyć interfejsu API constructConfigurationObject pomocnika, który tworzy obiekt konfiguracji na podstawie wartości kluczy załadowanych z Azure Konfiguracja Aplikacji.

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ązujesz połączenie z usługą Konfiguracja aplikacji Azure i ładujesz 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 Microsoft Entra ID (zalecane) lub ciągu połączenia.

Używasz DefaultAzureCredential do uwierzytelniania w swoim magazynie App Configuration. Postępuj zgodnie z instrukcjami, aby przypisać poświadczenia roli Czytelnik danych konfiguracji aplikacji. Upewnij się, że przed uruchomieniem aplikacji pozwolisz 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 kluczy i wartości przy użyciu selektorów

W tym przykładzie, określając opcję selectors, załadujesz podzbiór par klucz-wartość. Ładowane są tylko klucze rozpoczynające się od "app.". Należy pamiętać, że można określić wiele selektorów w zależności od potrzeb, z których każdy ma właściwości keyFilter 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 usuwanie prefiksu z kluczy

W tym przykładzie załadujesz pary klucz-wartość za pomocą opcji trimKeyPrefixes. Po załadowaniu wartości kluczowych, prefiks "app." jest usuwany ze wszystkich kluczy. Jest to przydatne, gdy chcesz załadować konfiguracje specyficzne dla aplikacji, filtrując zgodnie z określonym prefiksem klucza, ale nie chcesz, aby Twój kod za każdym razem zawierał ten prefiks podczas uzyskiwania dostępu 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

  1. Ustaw zmienną środowiskową .

    Ustaw zmienną środowiskową o nazwie AZURE_APPCONFIG_ENDPOINT na punkt końcowy sklepu z konfiguracją aplikacji znajdującego się w obszarze Przegląd sklepu w portalu Azure.

    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>'
    
  2. 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 niewłaściwej 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.

  1. Zaloguj się do witryny Azure Portal i wybierz pozycję Grupy zasobów.
  2. W polu Filtruj według nazwy wprowadź nazwę grupy zasobów.
  3. Na liście wyników wybierz nazwę grupy zasobów, aby wyświetlić przegląd.
  4. Wybierz pozycję Usuń grupę zasobów.
  5. Jesteś proszony 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 szybkim przewodniku utworzono nowy sklep App Configuration i pokazano, jak uzyskiwać dostęp do par klucz-wartość za pomocą dostawcy JavaScript App Configuration w aplikacji Node.js. Aby dowiedzieć się, jak skonfigurować aplikację do dynamicznego odświeżania ustawień konfiguracji, przejdź do następnego samouczka.

Aby zapoznać się z pełnym przeglądem funkcji biblioteki dostawcy konfiguracji JavaScript, zobacz następujący dokument.