Udostępnij za pośrednictwem


Samouczek: używanie konfiguracji dynamicznej w języku JavaScript

Z tego samouczka dowiesz się, jak włączyć konfigurację dynamiczną w aplikacjach JavaScript. Przykład w tym samouczku opiera się na przykładowej aplikacji wprowadzonej w przewodniku Szybki start języka JavaScript. Przed kontynuowaniem zakończ tworzenie aplikacji JavaScript przy użyciu aplikacja systemu Azure Configuration.

Wymagania wstępne

Dodawanie wartości klucz-wartość

Dodaj następującą wartość klucza do magazynu konfiguracji aplikacja systemu Azure. 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ść Etykieta Typ zawartości
message Cześć ludzie! Pozostaw pole puste Pozostaw pole puste
Sentinel 1 Pozostaw pole puste Pozostaw pole puste

Uwaga

Klucz sentinel to klucz aktualizowany po zakończeniu zmiany wszystkich innych kluczy. Aplikacja monitoruje klucz sentinel. Po wykryciu zmiany aplikacja odświeża wszystkie wartości konfiguracji. Takie podejście pomaga zapewnić spójność konfiguracji w aplikacji i zmniejszyć ogólną liczbę żądań wysyłanych do magazynu konfiguracji aplikacja systemu Azure w porównaniu do monitorowania wszystkich kluczy pod kątem zmian.

Ponowne ładowanie danych z usługi App Configuration

W poniższych przykładach pokazano, jak używać odświeżalnych wartości konfiguracji w aplikacjach konsoli. Wybierz poniższe instrukcje na podstawie sposobu, w jaki aplikacja korzysta z danych konfiguracji załadowanych z usługi App Configuration jako Map obiektu konfiguracji lub .

Możesz nawiązać połączenie z usługą App Configuration przy użyciu identyfikatora Entra firmy Microsoft (zalecane) lub parametry połączenia. Poniższy fragment kodu przedstawia użycie identyfikatora Entra firmy Microsoft. Do uwierzytelniania w magazynie App Configuration należy użyć wartości DefaultAzureCredential. Podczas wykonywania kroków Szybki start wymienionych w wymaganiach wstępnych przypisano już swoje poświadczenia roli Czytelnik danych konfiguracji aplikacji.

  1. Otwórz plik app.js i zaktualizuj load funkcję. Dodaj parametr, aby włączyć odświeżanie refreshOptions i skonfigurować opcje odświeżania. Załadowana konfiguracja zostanie zaktualizowana po wykryciu zmiany na serwerze. Domyślnie jest używany interwał odświeżania wynoszący 30 sekund, ale można go zastąpić właściwością refreshIntervalInMs .

    // Connecting to Azure App Configuration using endpoint and token credential
    const settings = await load(endpoint, credential, {
        // Setting up to refresh when the sentinel key is changed
        refreshOptions: {
            enabled: true,
            watchedSettings: [{ key: "sentinel" }] // Watch for changes to the key "sentinel" and refreshes the configuration when it changes
        }
    });
    
  2. Skonfigurowanie refreshOptions samej konfiguracji nie spowoduje automatycznego odświeżenia konfiguracji. Aby wyzwolić odświeżanie, należy wywołać refresh metodę . Ten projekt uniemożliwia niepotrzebne żądania do usługi App Configuration, gdy aplikacja jest bezczynna. Należy dołączyć refresh wywołanie, w którym występuje działanie aplikacji. Jest to nazywane odświeżaniem konfiguracji opartej na działaniach. Można na przykład wywołać refresh metodę przetwarzania komunikatu przychodzącego lub zamówienia albo wewnątrz iteracji, w której wykonujesz złożone zadanie. Alternatywnie możesz użyć czasomierza, jeśli aplikacja jest zawsze aktywna. W tym przykładzie refresh nazwa jest wywoływana w pętli na potrzeby demonstracyjne. Nawet jeśli refresh wywołanie zakończy się niepowodzeniem z jakiegokolwiek powodu, aplikacja będzie nadal używać buforowanej konfiguracji. Kolejna próba zostanie podjęta po upływie skonfigurowanego interwału odświeżania, a refresh wywołanie zostanie wyzwolone przez działanie aplikacji. Wywołanie refresh jest operacją no-op przed upływem skonfigurowanego interwału odświeżania, więc jego wpływ na wydajność jest minimalny, nawet jeśli jest wywoływany często.

    Dodaj następujący kod, aby sondować zmiany konfiguracji obserwowanych klucz-wartości.

    // Polling for configuration changes every 5 seconds
    while (true) {
        await sleepInMs(5000); // Waiting before the next refresh
        await settings.refresh(); // Refreshing the configuration setting
        console.log(settings.get("message")); // Consume current value of message from a Map
    }
    
  3. Teraz plik app.js powinien wyglądać podobnie do następującego fragmentu kodu:

    const sleepInMs = require("util").promisify(setTimeout);
    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() {
        // Connecting to Azure App Configuration using endpoint and token credential
        const settings = await load(endpoint, credential, {
            // Setting up to refresh when the sentinel key is changed
            refreshOptions: {
                enabled: true,
                watchedSettings: [{ key: "sentinel" }] // Watch for changes to the key "sentinel" and refreshes the configuration when it changes
            }
        });
    
        // Polling for configuration changes every 5 seconds
        while (true) {
            await sleepInMs(5000); // Waiting before the next refresh
            await settings.refresh(); // Refreshing the configuration setting
            console.log(settings.get("message")); // Consume current value of message from a Map
        }
    }
    
    run().catch(console.error);
    

Uruchamianie aplikacji

  1. Uruchom skrypt:

    node app.js
    
  2. Sprawdź dane wyjściowe:

    Hello World!
    

    Kontynuuje drukowanie "Hello World!" w nowym wierszu co 5 sekund.

  3. Zaktualizuj następujące wartości klucza do magazynu konfiguracji aplikacja systemu Azure. Najpierw zaktualizuj wartość klucza message , a następnie sentinel.

    Key Wartość Etykieta Typ zawartości
    message Witaj, świecie — zaktualizowano! Pozostaw pole puste Pozostaw pole puste
    Sentinel 2 Pozostaw pole puste Pozostaw pole puste
  4. Po zaktualizowaniu wartości zaktualizowana wartość zostanie wydrukowana po interwale odświeżania.

    Hello World - Updated!
    

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 samouczku włączono aplikację JavaScript w celu dynamicznego odświeżania ustawień konfiguracji z aplikacja systemu Azure Configuration. Aby dowiedzieć się, jak używać tożsamości zarządzanej platformy Azure w celu usprawnienia dostępu do usługi aplikacja systemu Azure Configuration, przejdź do następnego samouczka.