Udostępnij za pośrednictwem


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

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.

  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ę 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

  1. 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>'
    
  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 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.

  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. 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.