Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
In deze zelfstudie leert u hoe u dynamische configuratie inschakelt in uw JavaScript-toepassingen. Het voorbeeld in deze zelfstudie is gebaseerd op de voorbeeldtoepassing die is geïntroduceerd in de JavaScript-quickstart. Voordat u doorgaat, voltooit u Het maken van een JavaScript-app met Azure-app-configuratie.
Vereisten
- Voltooi de quickstart Een JavaScript-app maken met Azure-app Configuration.
- Werk het
@azure/app-configuration-providerpakket bij naar versie 2.0.0 of hoger.
Sleutelwaarden toevoegen
Voeg de volgende sleutelwaarde toe aan het Azure-app Configuratiearchief. Ga naar Een sleutelwaarde maken voor meer informatie over het toevoegen van sleutelwaarden aan een archief met behulp van Azure Portal of de CLI.
| Sleutel | Waarde | Etiket | Inhoudstype |
|---|---|---|---|
| bericht | Hallo wereld! | Leeg laten | Leeg laten |
Consoletoepassingen
In de volgende voorbeelden ziet u hoe u vernieuwbare configuratiewaarden gebruikt in consoletoepassingen.
Kies de volgende instructies op basis van de wijze waarop uw toepassing configuratiegegevens verbruikt die vanuit App Configuration zijn geladen, hetzij als een Map of een configuratieobject.
Gegevens laden vanuit App Configuration
U kunt verbinding maken met App Configuration met behulp van Microsoft Entra ID (aanbevolen) of een verbindingsreeks. Het volgende codefragment laat zien hoe u Microsoft Entra-id gebruikt. U gebruikt DefaultAzureCredential om te verifiëren bij uw App Configuration-archief. Tijdens het voltooien van de quickstart die wordt vermeld in de vereisten, hebt u uw referenties al toegewezen aan de rol App Configuration Data Reader.
Open het bestand app.js en werk de
loadfunctie bij. Voeg eenrefreshOptionsparameter toe om de vernieuwingsopties in te schakelen en te configureren. De geladen configuratie wordt bijgewerkt wanneer er een wijziging op de server wordt gedetecteerd. Standaard wordt een vernieuwingsinterval van 30 seconden gebruikt, maar u kunt dit overschrijven met derefreshIntervalInMseigenschap.// Connecting to Azure App Configuration using endpoint and token credential const appConfig = await load(endpoint, credential, { // Enabling the dynamic refresh refreshOptions: { enabled: true } });Notitie
Als u de foutmelding krijgt: 'Vernieuwen is ingeschakeld, maar er zijn geen instellingen opgegeven', werkt u het
@azure/app-configuration-providerpakket bij naar versie 2.0.0 of hoger.Aanbeveling
Zie Aanbevolen procedures voor het vernieuwen van configuratiesvoor meer informatie over het controleren van configuratiewijzigingen.
Als u de configuratie alleen instelt
refreshOptions, wordt de configuratie niet automatisch vernieuwd. U moet derefreshmethode aanroepen om een vernieuwing te activeren. Dit ontwerp voorkomt onnodige aanvragen voor App Configuration wanneer uw toepassing niet actief is. Neem derefreshaanroep op waar uw toepassingsactiviteit plaatsvindt. Dit wordt ook wel activiteitgestuurde configuratievernieuwing genoemd. U kunt bijvoorbeeld aanroepenrefreshbij het verwerken van een binnenkomend bericht of een order, of in een iteratie waarin u een complexe taak uitvoert. U kunt ook een timer gebruiken als uw toepassing altijd actief is. In dit voorbeeldrefreshwordt een lus aangeroepen voor demonstratiedoeleinden. Zelfs als derefreshaanroep om welke reden dan ook mislukt, blijft uw toepassing de configuratie in de cache gebruiken. Er wordt nog een poging gedaan wanneer het geconfigureerde vernieuwingsinterval is verstreken en derefreshaanroep wordt geactiveerd door uw toepassingsactiviteit. Bellenrefreshis een no-op voordat het geconfigureerde vernieuwingsinterval is verstreken, dus de invloed op de prestaties is minimaal, zelfs als het vaak wordt aangeroepen.Voeg de volgende code toe om configuratiewijzigingen van bekeken sleutelwaarden te peilen.
// 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 }Nu ziet het bestand app.js eruit als het volgende codefragment:
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://free.blessedness.top/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);
De toepassing uitvoeren
Voer uw script uit:
node app.jsUitvoer controleren:
Hello World!Het blijft elke 5 seconden 'Hallo wereld!' afdrukken op een nieuwe regel.
Werk de volgende sleutelwaarden bij naar het Azure-app Configuratiearchief. Waarde van de sleutel bijwerken
message.Sleutel Waarde Etiket Inhoudstype bericht Hallo wereld - Bijgewerkt! Leeg laten Leeg laten Zodra de waarden zijn bijgewerkt, wordt de bijgewerkte waarde na het vernieuwingsinterval afgedrukt.
Hello World - Updated!
Servertoepassing
In het volgende voorbeeld ziet u hoe u een bestaande HTTP-server bijwerkt om vernieuwbare configuratiewaarden te gebruiken.
Maak een nieuw JavaScript-bestand met de naam
server.jsen voeg de volgende code toe: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();Voer uw script uit:
node server.jsGa naar
http://localhost:3000en u ziet het antwoord:
Gegevens laden vanuit App Configuration
Werk de
server.jsapp-configuratie bij en schakel dynamische vernieuwing in: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://free.blessedness.top/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());
Aanvraaggestuurde configuratie vernieuwen
In de meeste gevallen kan de vernieuwingsbewerking van de App Configuration-provider worden behandeld als een no-op. Er worden alleen aanvragen verzonden om de waarde in App Configuration te controleren wanneer het vernieuwingsinterval dat u hebt ingesteld, is verstreken.
Het is raadzaam om aanvraaggestuurde configuratievernieuwing voor uw webtoepassing te implementeren. De configuratievernieuwing wordt geactiveerd door de binnenkomende aanvragen voor uw web-app. Er wordt geen vernieuwing uitgevoerd als uw app niet actief is, wanneer er geen aanvraag binnenkomt. Wanneer uw app actief is, kunt u een middleware of vergelijkbaar mechanisme gebruiken om de appConfig.refresh() aanroep te activeren bij elke binnenkomende aanvraag naar uw toepassing.
Als een aanvraag voor App Configuration voor wijzigingsdetectie mislukt, blijft uw app de configuratie in de cache gebruiken. Er worden regelmatig nieuwe pogingen gedaan om te controleren op wijzigingen, terwijl er nieuwe binnenkomende aanvragen voor uw app zijn.
De configuratievernieuwing vindt asynchroon plaats bij de verwerking van de binnenkomende aanvragen van uw app. De binnenkomende aanvraag die de vernieuwing heeft geactiveerd, wordt niet geblokkeerd of vertraagd. De aanvraag die de vernieuwing heeft geactiveerd, ontvangt mogelijk niet de bijgewerkte configuratiewaarden, maar latere aanvragen krijgen nieuwe configuratiewaarden.
De toepassing uitvoeren
Uw HTTP-server opnieuw starten:
node server.jsGa naar
http://localhost:3000en controleer het antwoord dat demessagesleutel is in uw App Configuration-archief.
Werk de volgende sleutelwaarden bij naar het Azure-app Configuratiearchief. Waarde van de sleutel bijwerken
message.Sleutel Waarde Etiket Inhoudstype bericht Hallo wereld - Bijgewerkt! Leeg laten Leeg laten Vernieuw de pagina na ongeveer 15 seconden en het bericht moet worden bijgewerkt.
Resources opschonen
Als u de resources die in dit artikel zijn gemaakt niet wilt blijven gebruiken, verwijdert u de resourcegroep die u hier hebt gemaakt om kosten te voorkomen.
Belangrijk
Het verwijderen van een resourcegroep kan niet ongedaan worden gemaakt. De resourcegroep en alle resources daarin worden permanent verwijderd. Zorg ervoor dat u niet per ongeluk de verkeerde resourcegroep of resources verwijdert. Als u de resources voor dit artikel in een resourcegroep hebt gemaakt die andere resources bevat die u wilt behouden, moet u elke resource afzonderlijk verwijderen uit het deelvenster in plaats van dat u de resourcegroep verwijdert.
- Meld u aan bij de Azure-portal en selecteer Resourcegroepen.
- Voer de naam van de resourcegroep in het vak Filteren op naam in.
- Selecteer in de resultatenlijst de resourcegroepnaam om een overzicht te bekijken.
- Selecteer Resourcegroep verwijderen.
- U wordt gevraagd om het verwijderen van de resourcegroep te bevestigen. Voer de naam van de resourcegroep in ter bevestiging en selecteer Verwijderen.
Na enkele ogenblikken worden de resourcegroep en alle bijbehorende resources verwijderd.
Volgende stappen
In deze zelfstudie hebt u uw JavaScript-app ingeschakeld om configuratie-instellingen dynamisch te vernieuwen vanuit Azure-app Configuratie. Als u wilt weten hoe u een door Azure beheerde identiteit gebruikt om de toegang tot Azure-app Configuratie te stroomlijnen, gaat u verder met de volgende zelfstudie.
Ga naar het volgende document voor de volledige functierundown van de JavaScript-configuratieproviderbibliotheek.