Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
-
@azure/app-configuration-providerZaktualizuj pakiet do wersji 2.0.0 lub nowszej.
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).
| Klawisz | Wartość | Etykieta | Typ zawartości |
|---|---|---|---|
| Komunikat | Cześć ludzie! | Pozostaw pole puste | Pozostaw pole puste |
Aplikacje konsolowe
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 .
Ładowanie danych z usługi App Configuration
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
loadfunkcję. Dodaj parametr, aby włączyć odświeżanierefreshOptionsi 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 appConfig = await load(endpoint, credential, { // Enabling the dynamic refresh refreshOptions: { enabled: true } });Uwaga
Jeśli wystąpi błąd: "Odświeżanie jest włączone, ale nie określono żadnych obserwowanych ustawień"., zaktualizuj
@azure/app-configuration-providerpakiet do wersji 2.0.0 lub nowszej.Wskazówka
Aby uzyskać więcej informacji na temat monitorowania zmian konfiguracji, zobacz Najlepsze rozwiązania dotyczące odświeżania konfiguracji.
Skonfigurowanie
refreshOptionssamej konfiguracji nie spowoduje automatycznego odświeżenia konfiguracji. Aby wyzwolić odświeżanie, należy wywołaćrefreshmetodę . Ten projekt uniemożliwia niepotrzebne żądania do usługi App Configuration, gdy aplikacja jest bezczynna. Należy dołączyćrefreshwywoł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ćrefreshmetodę 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ładzierefreshnazwa jest wywoływana w pętli na potrzeby demonstracyjne. Nawet jeślirefreshwywoł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, arefreshwywołanie zostanie wyzwolone przez działanie aplikacji. Wywołanierefreshjest 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) { console.log(appConfig.get("message")); // Consume current value of message from a Map appConfig.refresh(); // Refreshing the configuration setting asynchronously await sleepInMs(5000); // Waiting before the next refresh }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 appConfig = await load(endpoint, credential, { // Enabling the dynamic refresh refreshOptions: { enabled: true } }); // Polling for configuration changes every 5 seconds while (true) { console.log(appConfig.get("message")); // Consume current value of message from a Map appConfig.refresh(); // Refreshing the configuration setting asynchronously await sleepInMs(5000); // Waiting before the next refresh } } run().catch(console.error);
Uruchamianie aplikacji
Uruchom skrypt:
node app.jsSprawdź 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. Zaktualizuj wartość klucza
message.Klawisz Wartość Etykieta Typ zawartości Komunikat Witaj, świecie — zaktualizowano! Pozostaw pole puste Pozostaw pole puste Po zaktualizowaniu wartości zaktualizowana wartość zostanie wydrukowana po interwale odświeżania.
Hello World - Updated!
Serwer aplikacji
W poniższym przykładzie pokazano, jak zaktualizować istniejący serwer HTTP w celu używania odświeżalnych wartości konfiguracji.
Utwórz nowy plik JavaScript o nazwie
server.jsi dodaj następujący kod:const http = require('http'); function startServer() { const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end("Hello World!"); }); const hostname = "localhost"; const port = 3000; server.listen(port, hostname, () => { console.log(`Server running at http://localhost:${port}/`); }); } startServer();Uruchom skrypt:
node server.jsOdwiedź stronę
http://localhost:3000i zobaczysz odpowiedź:
Ładowanie danych z usługi App Configuration
Zaktualizuj element
server.js, aby używać usługi App Configuration i włączyć odświeżanie dynamiczne:const http = require("http"); 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 let appConfig; async function initializeConfig() { appConfig = await load(endpoint, credential, { refreshOptions: { enabled: true, refreshIntervalInMs: 15_000 // set the refresh interval } }); } function startServer() { const server = http.createServer((req, res) => { // refresh the configuration asynchronously when there is any incoming request appConfig.refresh(); res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end(appConfig.get("message")); }); const hostname = "localhost"; const port = 3000; server.listen(port, hostname, () => { console.log(`Server running at http://localhost:${port}/`); }); } // Initialize the configuration and then start the server initializeConfig() .then(() => startServer());
Odświeżanie konfiguracji opartej na żądaniach
W większości przypadków operację odświeżania dostawcy usługi App Configuration można traktować jako operację bez operacji. Będzie wysyłać żądania tylko w celu sprawdzenia wartości w usłudze App Configuration po upływie ustawionego czasu interwału odświeżania.
Zalecamy zaimplementowanie odświeżania konfiguracji opartej na żądaniach dla aplikacji internetowej. Odświeżanie konfiguracji jest wyzwalane przez przychodzące żądania do aplikacji internetowej. Jeśli aplikacja nie będzie w stanie bezczynności, w przypadku braku żądań przychodzących nie wystąpi żadne odświeżanie. Gdy aplikacja jest aktywna, możesz użyć oprogramowania pośredniczącego lub podobnego mechanizmu, aby wyzwolić appConfig.refresh() wywołanie dla każdego przychodzącego żądania do aplikacji.
Jeśli żądanie do usługi App Configuration dotyczące wykrywania zmian nie powiedzie się, aplikacja będzie nadal używać buforowanej konfiguracji. Nowe próby sprawdzenia, czy zmiany zostaną wprowadzone okresowo, gdy do aplikacji będą wysyłane nowe żądania przychodzące.
Odświeżanie konfiguracji odbywa się asynchronicznie do przetwarzania żądań przychodzących aplikacji. Nie spowoduje to zablokowania ani spowolnienia żądania przychodzącego, które wyzwoliło odświeżanie. Żądanie, które wyzwoliło odświeżanie, może nie uzyskać zaktualizowanych wartości konfiguracji, ale późniejsze żądania otrzymają nowe wartości konfiguracji.
Uruchamianie aplikacji
Uruchom ponownie serwer HTTP:
node server.jsOdwiedź
http://localhost:3000witrynę i sprawdź odpowiedź, która jest kluczemmessagew magazynie usługi App Configuration.
Zaktualizuj następujące wartości klucza do magazynu konfiguracji aplikacja systemu Azure. Zaktualizuj wartość klucza
message.Klawisz Wartość Etykieta Typ zawartości Komunikat Witaj, świecie — zaktualizowano! Pozostaw pole puste Pozostaw pole puste Po około 15 sekundach odśwież stronę przez wiele razy, a komunikat powinien zostać zaktualizowany.
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.
Aby uruchomić pełną funkcję biblioteki dostawcy konfiguracji języka JavaScript, przejdź do następującego dokumentu.