Megosztás a következőn keresztül:


Oktatóanyag: Dinamikus konfiguráció használata JavaScriptben

Ebben az oktatóanyagban megtudhatja, hogyan engedélyezheti a dinamikus konfigurációt JavaScript-alkalmazásaiban. Az oktatóanyagban szereplő példa a JavaScript rövid útmutatójában bemutatott mintaalkalmazásra épül. A folytatás előtt fejezze be a JavaScript-alkalmazás létrehozását Azure-alkalmazás Konfigurációval.

Előfeltételek

Kulcsértékek hozzáadása

Adja hozzá a következő kulcsértéket a Azure-alkalmazás Konfigurációs tárhoz. Ha többet szeretne tudni arról, hogyan adhat hozzá kulcsértékeket egy áruházhoz az Azure Portal vagy a parancssori felület használatával, lépjen a Kulcs-érték létrehozása elemre.

Kulcs Érték Címke Tartalomtípus
üzenet „Helló világ!” alkalmazás! Hagyja üresen Hagyja üresen

Konzolalkalmazások

Az alábbi példák bemutatják, hogyan használhatók a frissíthető konfigurációs értékek a konzolalkalmazásokban. Válassza ki az alábbi utasításokat annak alapján, hogy az alkalmazás hogyan használja fel az Alkalmazáskonfigurációból betöltött konfigurációs adatokat, akár konfigurációs objektumként Map , akár konfigurációs objektumként.

Adatok betöltése az alkalmazáskonfigurációból

Az alkalmazáskonfigurációhoz Microsoft Entra-azonosító (ajánlott) vagy kapcsolati sztring használatával csatlakozhat. Az alábbi kódrészlet a Microsoft Entra ID használatát mutatja be. A DefaultAzureCredential használatával hitelesítheti magát az Alkalmazáskonfigurációs áruházban. Az előfeltételekben felsorolt rövid útmutató elvégzése közben már hozzárendelte a hitelesítő adatait az alkalmazáskonfigurációs adatolvasó szerepkörhöz.

  1. Nyissa meg a fájlt app.js , és frissítse a függvényt load . Adjon hozzá egy paramétert refreshOptions a frissítés engedélyezéséhez és a frissítési beállítások konfigurálásához. A betöltött konfiguráció frissül, ha a rendszer módosítást észlel a kiszolgálón. Alapértelmezés szerint 30 másodperces frissítési időközt használ, de felülbírálhatja a refreshIntervalInMs tulajdonsággal.

    // Connecting to Azure App Configuration using endpoint and token credential
    const appConfig = await load(endpoint, credential, {
        // Enabling the dynamic refresh
        refreshOptions: {
            enabled: true
        }
    });
    

    Feljegyzés

    Ha a következő hibaüzenet jelenik meg: "A frissítés engedélyezve van, de nincs megadva megtekintési beállítás", frissítse a csomagot a @azure/app-configuration-provider 2.0.0-s vagy újabb verzióra.

    Jótanács

    A konfigurációváltozások figyelésével kapcsolatos további információkért tekintse meg a konfigurációfrissítés ajánlott eljárásait.

  2. A beállítás refreshOptions önmagában nem frissíti automatikusan a konfigurációt. A frissítés indításához meg kell hívnia a refresh metódust. Ez a kialakítás megakadályozza az alkalmazáskonfigurációra irányuló szükségtelen kéréseket, ha az alkalmazás tétlen. Adja meg azt a hívást, refresh amelyben az alkalmazástevékenység történik. Ezt tevékenységalapú konfigurációfrissítésnek nevezzük. Meghívhat refresh például egy bejövő üzenet vagy rendelés feldolgozásakor, vagy egy olyan iterációban, ahol összetett feladatot hajt végre. Másik lehetőségként időzítőt is használhat, ha az alkalmazás mindig aktív. Ebben a példában refresh egy ciklusban hívjuk meg bemutató célokra. Még akkor is, ha a refresh hívás bármilyen okból meghiúsul, az alkalmazás továbbra is a gyorsítótárazott konfigurációt fogja használni. Egy másik kísérlet akkor történik, amikor a konfigurált frissítési időköz lejárt, és a refresh hívást az alkalmazástevékenység aktiválja. A hívás refresh nem működik, mielőtt a konfigurált frissítési időköz eltelik, így a teljesítményre gyakorolt hatása minimális, még akkor is, ha gyakran hívják.

    Adja hozzá a következő kódot a figyelt kulcsértékek konfigurációs változásainak lekérdezéséhez.

    // 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
    }
    
  3. Most a fájl app.js a következő kódrészlethez hasonlóan kell kinéznie:

    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);
    

Az alkalmazás futtatása

  1. Futtassa a szkriptet:

    node app.js
    
  2. Kimenet ellenőrzése:

    Hello World!
    

    Továbbra is 5 másodpercenként nyomtatja a "„Helló világ!” alkalmazás!" szöveget egy új sorban.

  3. Frissítse a következő kulcsértékeket a Azure-alkalmazás Konfigurációs tárra. A kulcs messagefrissítési értéke.

    Kulcs Érték Címke Tartalomtípus
    üzenet „Helló világ!” alkalmazás - Frissítve! Hagyja üresen Hagyja üresen
  4. Az értékek frissítése után a frissített érték a frissítési időköz után lesz kinyomtatva.

    Hello World - Updated!
    

Kiszolgálóalkalmazás

Az alábbi példa bemutatja, hogyan frissíthet egy meglévő HTTP-kiszolgálót frissíthető konfigurációs értékek használatára.

  1. Hozzon létre egy új JavaScript-fájlt, server.js és adja hozzá a következő kódot:

    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();
    
  2. Futtassa a szkriptet:

    node server.js
    
  3. Látogasson el http://localhost:3000 , és látni fogja a választ:

    Képernyőkép a böngészőről egy üzenettel.

Adatok betöltése az alkalmazáskonfigurációból

  1. Frissítse az server.js alkalmazáskonfiguráció használatát, és engedélyezze a dinamikus frissítést:

    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());
    

Kérelemalapú konfigurációfrissítés

A legtöbb esetben az alkalmazáskonfiguráció-szolgáltató frissítési művelete nem műveletként kezelhető. A rendszer csak akkor küld kéréseket az alkalmazáskonfiguráció értékének ellenőrzésére, ha a megadott frissítési időköz lejárt.

Javasoljuk, hogy a webalkalmazás kérésalapú konfigurációs frissítését implementálja. A konfiguráció frissítését a webalkalmazáshoz érkező bejövő kérések aktiválják. Nem történik frissítés, ha az alkalmazás tétlen, ha nincs bejövő kérés. Ha az alkalmazás aktív, használhat köztes szoftvereket vagy hasonló mechanizmusokat, hogy elindítsa a hívást az appConfig.refresh() alkalmazáshoz érkező minden bejövő kéréskor.

  • Ha az alkalmazáskonfiguráció kérése sikertelen a változásészleléshez, az alkalmazás továbbra is a gyorsítótárazott konfigurációt fogja használni. A módosítások ellenőrzésére tett új kísérletek rendszeres időközönként történnek, miközben új bejövő kérések érkeznek az alkalmazáshoz.

  • A konfigurációfrissítés aszinkron módon történik az alkalmazás bejövő kéréseinek feldolgozása során. Nem blokkolja vagy lassítja a frissítést kiváltó bejövő kérést. Előfordulhat, hogy a frissítést kiváltó kérés nem kapja meg a frissített konfigurációs értékeket, de a későbbi kérések új konfigurációs értékeket kapnak.

Az alkalmazás futtatása

  1. Indítsa újra a HTTP-kiszolgálót:

    node server.js
    
  2. Keresse fel http://localhost:3000 és ellenőrizze az appkonfigurációs áruház kulcsának válaszát message .

    Képernyőkép a böngészőről az Alkalmazáskonfiguráció üzenetével.

  3. Frissítse a következő kulcsértékeket a Azure-alkalmazás Konfigurációs tárra. A kulcs messagefrissítési értéke.

    Kulcs Érték Címke Tartalomtípus
    üzenet „Helló világ!” alkalmazás - Frissítve! Hagyja üresen Hagyja üresen
  4. Körülbelül 15 másodperc elteltével frissítse többször a lapot, és az üzenetet frissítenie kell.

    Képernyőkép a böngészőről az Alkalmazáskonfiguráció frissített üzenetével.

Az erőforrások eltávolítása

Ha nem szeretné folytatni a cikkben létrehozott erőforrások használatát, törölje az itt létrehozott erőforráscsoportot a díjak elkerülése érdekében.

Fontos

Az erőforráscsoport törlése nem vonható vissza. Az erőforráscsoport és a benne lévő összes erőforrás véglegesen törlődik. Győződjön meg arról, hogy nem véletlenül törli a rossz erőforráscsoportot vagy erőforrásokat. Ha a cikk erőforrásait olyan erőforráscsoporton belül hozta létre, amely más megtartani kívánt erőforrásokat tartalmaz, törölje az egyes erőforrásokat a megfelelő panelről az erőforráscsoport törlése helyett.

  1. Jelentkezzen be az Azure Portalra, és válassza ki az Erőforráscsoportokat.
  2. A Szűrés név szerint mezőbe írja be az erőforráscsoport nevét.
  3. Az eredménylistában válassza ki az erőforráscsoport nevét az áttekintés megtekintéséhez.
  4. Válassza az Erőforráscsoport törlése elemet.
  5. A rendszer az erőforráscsoport törlésének megerősítését kéri. Adja meg a megerősítéshez az erőforráscsoport nevét, és válassza a Törlés lehetőséget.

Néhány pillanat múlva az erőforráscsoport és annak összes erőforrása törlődik.

Következő lépések

Ebben az oktatóanyagban engedélyezte, hogy a JavaScript-alkalmazás dinamikusan frissítse a konfigurációs beállításokat Azure-alkalmazás Konfigurációból. Ha szeretné megtudni, hogyan használhat azure-beli felügyelt identitást a Azure-alkalmazás konfigurációjához való hozzáférés egyszerűsítéséhez, folytassa a következő oktatóanyagban.

A JavaScript konfigurációszolgáltatói kódtár teljes funkciólefutásához folytassa a következő dokumentumokkal.