Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez az oktatóanyag bemutatja, hogyan engedélyezheti a dinamikus konfigurációs frissítéseket egy ASP.NET Core-alkalmazásban. A rövid útmutatókban bemutatott webalkalmazásra épül. Az alkalmazás az alkalmazáskonfiguráció-szolgáltatói kódtárat fogja használni a beépített konfigurációs gyorsítótárazási és frissítési képességekhez. A folytatás előtt először fejezze be az ASP.NET Core-alkalmazás létrehozását az Alkalmazáskonfigurációval.
Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:
- Állítsa be az alkalmazást úgy, hogy az alkalmazás konfigurációját az alkalmazáskonfigurációs áruház változásaira válaszul frissítse.
- Szúrja be a legújabb konfigurációt az alkalmazásba.
Előfeltételek
Fejezze be a rövid útmutatót: Hozzon létre egy ASP.NET Core-alkalmazást az alkalmazáskonfigurációval.
Adatok újrabetöltése az alkalmazáskonfigurációból
Nyisd meg a Program.cs fájlt, és frissítsd a
AddAzureAppConfigurationmetódust, amelyet a gyorskezdet során adtál hozzá. 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.Az
DefaultAzureCredentialhasználatával hitelesítheti magát az Alkalmazáskonfigurációs áruházban. Amikor a gyors útmutató elvégzéséhez szükséges előfeltételeket teljesíti, már hozzárendelte a hozzáférési engedélyét az Alkalmazáskonfigurációs Adatolvasó szerepkörhöz.// Load configuration from Azure App Configuration builder.Configuration.AddAzureAppConfiguration(options => { options.Connect(new Uri(endpoint), new DefaultAzureCredential()) // Load all keys that start with `TestApp:` and have no label. .Select("TestApp:*", LabelFilter.Null) // Reload configuration if any selected key-values have changed. .ConfigureRefresh(refreshOptions => refreshOptions.RegisterAll()); });A
Selectmetódus az összes olyan kulcsértéket betölti, amelynek a kulcsneve a TestApptal kezdődik, és nincs címkéje. A metódust többször is meghívhatja aSelectkülönböző előtagokkal vagy címkékkel rendelkező konfigurációk betöltéséhez. Ha egy alkalmazáskonfigurációs áruházat több alkalmazással is megoszt, ez a módszer segít betölteni az aktuális alkalmazáshoz kapcsolódó konfigurációt ahelyett, hogy mindent betöltenél az áruházból.ConfigureRefreshA metóduson belül meghívja aRegisterAllmetódust, amely arra utasítja az alkalmazáskonfiguráció-szolgáltatót, hogy töltse újra újra a teljes konfigurációt, amikor változást észlel a kiválasztott kulcsértékekben (a TestApptól kezdve a címkével nem rendelkezőknél). 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.Tipp.
A metódushoz
refreshOptions.SetRefreshIntervalhívással megadhatja a konfigurációfrissítések közötti minimális időt. Ebben a példában az alapértelmezett 30 másodperces értéket használja. Ha csökkenteni szeretné az Alkalmazáskonfigurációs áruházba érkező kérések számát, módosítsa magasabb értékre.Adja hozzá az Azure App Configuration middleware-t az alkalmazás szolgáltatási gyűjteményéhez.
Frissítse Program.cs a következő kóddal.
// Existing code in Program.cs // ... ... builder.Services.AddRazorPages(); // Add Azure App Configuration middleware to the container of services. builder.Services.AddAzureAppConfiguration(); // Bind configuration "TestApp:Settings" section to the Settings object builder.Services.Configure<Settings>(builder.Configuration.GetSection("TestApp:Settings")); var app = builder.Build(); // The rest of existing code in program.cs // ... ...Hívja meg a
UseAzureAppConfigurationmetódust. Lehetővé teszi, hogy az alkalmazás az Alkalmazáskonfiguráció köztes szoftverrel automatikusan frissítse a konfigurációt.Frissítse Program.cs a következő kóddal.
// Existing code in Program.cs // ... ... var app = builder.Build(); if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Error"); app.UseHsts(); } // Use Azure App Configuration middleware for dynamic configuration refresh. app.UseAzureAppConfiguration(); // The rest of existing code in program.cs // ... ...
Gyorskezdés során beállította az alkalmazását, hogy az ASP.NET Core opciók mintát használja. Amikor az alkalmazás alapkonfigurációja az Alkalmazáskonfigurációból frissül, az Settings-en keresztül beszerzett erősen típusolt IOptionsSnapshot<T> objektum automatikusan frissül. Vegye figyelembe, hogy nem érdemes a IOptions<T> dinamikus konfigurációs frissítést használni, mert az nem olvassa be a konfigurációs adatokat az alkalmazás elindítása után.
Kérelemalapú konfigurációfrissítés
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 az alkalmazás aktív, az Alkalmazáskonfiguráció middleware figyeli a ConfigureRefresh hívásban frissítéshez regisztrált kulcsokat. A köztes szoftver az alkalmazáshoz érkező minden bejövő kéréskor aktiválódik. A köztes szoftver azonban 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.
- 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.
- Annak érdekében, hogy a köztes szoftver aktiválódjon, hívja meg a
app.UseAzureAppConfiguration()metódust a kérési csatornában a lehető legkorábban, így egy másik köztes szoftver nem hagyja ki azt az alkalmazásban.
Az alkalmazás helyi létrehozása és futtatása
Ha az alkalmazást a .NET CLI használatával szeretné létrehozni, futtassa a következő parancsot a parancshéjban:
dotnet buildA build sikeres befejezése után futtassa a következő parancsot a webalkalmazás helyi futtatásához:
dotnet runNyisson meg egy böngészőablakot, és nyissa meg a kimenetben
dotnet runlátható URL-címet.
Jelentkezzen be az Azure Portalra. Válassza az Összes erőforrás lehetőséget, és válassza ki a rövid útmutatóban létrehozott Alkalmazáskonfigurációs áruházat.
Válassza a Konfigurációkezelőt, és frissítse az alábbi kulcsok értékeit.
Kulcs Érték TestApp:Beállítások:Háttérszín zöld TestApp:Beállítások:Betűszín világosszürke TestApp:Beállítások:Üzenet Adatok Azure-alkalmazás konfigurációból – most élő frissítésekkel! Frissítse a böngészőt néhányszor. Amikor a frissítési időköz 30 másodperc után eltelik, a lap frissített tartalommal jelenik meg.
Naplózás és figyelés
A naplók konfigurációfrissítéskor jelennek meg, és részletes információkat tartalmaznak az Alkalmazáskonfigurációs áruházból lekért kulcsértékekről és az alkalmazás konfigurációs módosításairól.
Amikor a
ILoggerFactorymeghívásra kerül, a rendszer automatikusan hozzáad egy alapértelmezettservices.AddAzureAppConfiguration()-t. Az alkalmazáskonfigurációs szolgáltató ezzelILoggerFactoryhoz létre egy példánytILogger, amely ezeket a naplókat adja ki. ASP.NET Core alapértelmezés szerint a naplózást használjaILogger, így nem kell további kódmódosításokat végeznie az alkalmazáskonfigurációs szolgáltató naplózásának engedélyezéséhez.A naplók különböző naplózási szinteken jelennek meg. Az alapértelmezett szint a .
InformationNaplószint Leírás Hibakeresés A naplók tartalmazzák az alkalmazás által figyelt kulcsértékek kulcsát és címkéjét az Alkalmazáskonfigurációs áruház módosításaihoz. Az információk azt is tartalmazzák, hogy a kulcs értéke megváltozott-e az alkalmazás által betöltött adatokhoz képest. Engedélyezze a naplókat ezen a szinten az alkalmazás hibaelhárításához, ha a konfigurációs változás nem a várt módon történt. Tájékoztatás A naplók tartalmazzák a konfigurációfrissítés során frissített konfigurációs beállítások kulcsait. A rendszer kihagyja a konfigurációs beállítások értékeit a naplóból, hogy elkerülje a bizalmas adatok kiszivárgását. Ezen a szinten figyelheti a naplókat, hogy az alkalmazás biztosan felvegye a várt konfigurációs módosításokat. Figyelmeztetés A naplók tartalmazzák a konfigurációfrissítés során előforduló hibákat és kivételeket. Az alkalmi előfordulások figyelmen kívül hagyhatók, mert a konfigurációszolgáltató továbbra is a gyorsítótárazott adatokat fogja használni, és legközelebb megkísérli frissíteni a konfigurációt. Ezen a szinten figyelheti a naplókat olyan ismétlődő figyelmeztetések esetén, amelyek potenciális problémákat jelezhetnek. Például forgatta a kapcsolati karakterláncot, de elfelejtette frissíteni az alkalmazást. A naplózást a
Debugnaplózási szinten engedélyezheti, ha hozzáadja az alábbi példát aappsettings.jsonfájlhoz. Ez a példa az összes többi naplószintre is vonatkozik."Logging": { "LogLevel": { "Microsoft.Extensions.Configuration.AzureAppConfiguration": "Debug" } }A naplózási kategória az
Microsoft.Extensions.Configuration.AzureAppConfiguration.Refreshegyes naplók előtt jelenik meg. Íme néhány példanapló minden naplószinten:dbug: Microsoft.Extensions.Configuration.AzureAppConfiguration.Refresh[0] Key-value read from App Configuration. Change:'Modified' Key:'ExampleKey' Label:'ExampleLabel' Endpoint:'https://examplestore.azconfig.io' info: Microsoft.Extensions.Configuration.AzureAppConfiguration.Refresh[0] Setting updated. Key:'ExampleKey' warn: Microsoft.Extensions.Configuration.AzureAppConfiguration.Refresh[0] A refresh operation failed while resolving a Key Vault reference. Key vault error. ErrorCode:'SecretNotFound' Key:'ExampleKey' Label:'ExampleLabel' Etag:'6LaqgBQM9C_Do2XyZa2gAIfj_ArpT52-xWwDSLb2hDo' SecretIdentifier:'https://examplevault.vault.azure.net/secrets/ExampleSecret'
Az ASP.NET alkalmazásokban a ILogger használata az előnyben részesített módszer, és prioritást élvez mint naplózási forrás, feltéve, hogy létezik ILoggerFactory példány. Ha ILoggerFactory azonban nem érhető el, a naplók engedélyezhetők és konfigurálhatók a .NET Core-alkalmazásokra vonatkozó utasítások alapján. További információ: .NET Core és ASP.NET Core naplózása.
Feljegyzés
A naplózás akkor érhető el, ha a következő csomagok bármelyikét a 6.0.0-s vagy újabb verziót használja.
Microsoft.Extensions.Configuration.AzureAppConfigurationMicrosoft.Azure.AppConfiguration.AspNetCoreMicrosoft.Azure.AppConfiguration.Functions.Worker
Az erőforrások rendbetétele
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.
- Jelentkezzen be az Azure Portalra, és válassza ki az Erőforráscsoportokat.
- A Szűrés név szerint mezőbe írja be az erőforráscsoport nevét.
- Az eredménylistában válassza ki az erőforráscsoport nevét az áttekintés megtekintéséhez.
- Válassza az Erőforráscsoport törlése lehetőséget.
- 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 a ASP.NET Core-webalkalmazást, hogy dinamikusan frissítse a konfigurációs beállításokat az Alkalmazáskonfigurációból. Ha szeretné megtudni, hogyan használhat azure-beli felügyelt identitást az alkalmazáskonfigurációhoz való hozzáférés gördülékenyebbé tételéhez, folytassa a következő oktatóanyagban.