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
- Zakończ przewodnik Szybki start Tworzenie aplikacji JavaScript przy użyciu usługi aplikacja systemu Azure Configuration.
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.
Otwórz plik app.js i zaktualizuj
load
funkcję. Dodaj parametr, aby włączyć odświeżanierefreshOptions
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 } });
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ładzierefresh
nazwa jest wywoływana w pętli na potrzeby demonstracyjne. Nawet jeślirefresh
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, arefresh
wywołanie zostanie wyzwolone przez działanie aplikacji. Wywołanierefresh
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 }
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
Uruchom skrypt:
node app.js
Sprawdź dane wyjściowe:
Hello World!
Kontynuuje drukowanie "Hello World!" w nowym wierszu co 5 sekund.
Zaktualizuj następujące wartości klucza do magazynu konfiguracji aplikacja systemu Azure. Najpierw zaktualizuj wartość klucza
message
, a następniesentinel
.Key Wartość Etykieta Typ zawartości message Witaj, świecie — zaktualizowano! Pozostaw pole puste Pozostaw pole puste Sentinel 2 Pozostaw pole puste Pozostaw pole puste 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.
- 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 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.