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


ajánlott Azure-alkalmazás konfigurációs eljárások

Ez a cikk a Azure-alkalmazás konfiguráció használatakor használt gyakori mintákat és ajánlott eljárásokat ismerteti.

Kulcscsoportok

Az alkalmazáskonfiguráció két lehetőséget kínál a kulcsok rendszerezésére:

  • Kulcselőtagok
  • Címkék

A kulcsok csoportosításához használhat egy vagy mindkét lehetőséget.

A kulcselőtagok lehetővé teszik a kapcsolódó kulcsok csoportosítását egy közös előtag használatával a nevükben. Az előtagok több szegmenst is tartalmazhatnak, amelyeket elválasztók választanak el, például /:hierarchikus névteret alkotva. Ez a módszer akkor hasznos, ha konfigurációs kulcsokat tárol több alkalmazáshoz vagy mikroszolgáltatáshoz egyetlen alkalmazáskonfigurációs áruházban.

Fontos megjegyezni, hogy az alkalmazáskód közvetlenül hivatkozik a kulcsra a megfelelő értékek lekéréséhez. Ezért a kulcsok stabilak maradnak a kódmódosítások elkerülése érdekében. Szükség esetén az alkalmazáskonfigurációs szolgáltatóval futtatáskor levághatja a kulcselőtagokat.

A címkék lehetővé teszik a kulcsok változatainak létrehozását, például különböző verziókat vagy környezetspecifikus beállításokat. Címkék hozzárendelésével több értéket is fenntarthat ugyanahhoz a kulcshoz. Az alkalmazás ezután a megfelelő címke megadásával lekérheti a kulcsértékek különböző készleteit, így a kódban lévő kulcshivatkozások konzisztensek maradnak.

Kulcs-érték kompozíciók

Az Alkalmazáskonfiguráció a benne tárolt kulcsokat független entitásként kezeli. Nem következtet kapcsolatokat a kulcsok között, és nem örökli az értékeket a kulcshierarchia alapján. Több kulcskészletet azonban hatékonyan összesíthet az alkalmazásban a konfigurációs halmozással kombinált címkék használatával.

Vegyünk egy példát, ahol egy TestApp:MySetting nevű konfigurációs beállítással rendelkezik, amelynek értéke a környezettől függően változik. Létrehozhat két azonos nevű kulcsot, de különböző címkéket rendelhet hozzá – az egyiket címke nélkül (alapértelmezett) és egy másik címkével ellátott fejlesztést. A címkézetlen kulcs az alapértelmezett értéket tartalmazza, míg a címkézett kulcs a környezetspecifikus értéket tartalmazza.

Az alkalmazáskódban először betölti az alapértelmezett (címkézetlen) kulcsértékeket, majd betölti a környezetspecifikus kulcsértékeket a fejlesztési címkével. A második készlet betöltésekor az egyező kulcsok felülírják a korábban betöltött értékeket. Ez a megközelítés lehetővé teszi több konfigurációs csoport halmozását, ahol az utolsó betöltött érték élvez elsőbbséget. A támogatott nyelvek és platformok alkalmazáskonfigurációs szolgáltatói ezt a halmozási képességet kínálják.

Az alábbi példa bemutatja, hogyan implementálhat kulcs-érték összetételt egy .NET-alkalmazásban:

configBuilder.AddAzureAppConfiguration(options => {
    options.Connect(new Uri("<your-app-config-endpoint>"), new DefaultAzureCredential())
           // Load all keys that start with `TestApp:` and compose with two different labels
           .Select(keyFilter: "TestApp:*", labelFilter: LabelFilter.Null)
           .Select(keyFilter: "TestApp:*", labelFilter: "Development");
});

A különböző környezetek különböző konfigurációinak engedélyezéséhez címkék használatával teljes példát mutatunk be.

Konfiguráció frissítése

Az Azure App Configuration az alkalmazás újraindítása nélkül támogatja a dinamikus konfiguráció frissítését. Az alkalmazáskonfiguráció-szolgáltatók két módszerrel figyelhetik a konfigurációs módosításokat:

Az összes kijelölt kulcs figyelése

Ebben a megközelítésben a szolgáltató figyeli az összes kijelölt kulcsot. Ha a kijelölt kulcsértékek bármelyikében változás észlelhető, a teljes konfiguráció újra betöltődik. Ez a megközelítés azonnali frissítéseket biztosít további kulcsmódosítások nélkül.

configBuilder.AddAzureAppConfiguration(options =>
{
    options.Connect(new Uri("<your-app-config-endpoint>"), new DefaultAzureCredential())
           // Load all keys that start with `TestApp:` and have no label
           .Select(keyFilter: "TestApp:*", labelFilter: LabelFilter.Null)
           .ConfigureRefresh(refreshOptions =>
           {
               // Trigger full configuration refresh when any selected key changes.
               refreshOptions.RegisterAll();
           });
});

Sentinel-kulcs figyelése

Másik lehetőségként figyelheti az egyes kulcsokat, amelyeket gyakran sentinel-kulcsnak is neveznek. Ez a módszer több kulcsérték frissítésekor hasznos. Ha csak az összes többi konfigurációmódosítás befejezése után frissíti a sentinel kulcsot, az alkalmazásnak csak egyszer kell újra betöltenie a konfigurációt, fenntartva a konzisztenciát.

configBuilder.AddAzureAppConfiguration(options =>
{
    options.Connect(new Uri("<your-app-config-endpoint>"), new DefaultAzureCredential())
           // Load all keys that start with `TestApp:` and have no label
           .Select(keyFilter: "TestApp:*", labelFilter: LabelFilter.Null)
           .ConfigureRefresh(refreshOptions =>
           {
               // Trigger full configuration refresh only if the `SentinelKey` changes.
               refreshOptions.Register("SentinelKey", refreshAll: true);
           });
});

Mindkét módszer elérhető az alkalmazáskonfigurációs szolgáltatókon keresztül a támogatott nyelvek és platformok között.

A konfigurációs inkonzisztenciák kockázatának csökkentése érdekében a konfigurációs integritás biztosításához használjon konfigurációs pillanatképeket .

Külső adatokra mutató hivatkozások

Az alkalmazáskonfiguráció úgy lett kialakítva, hogy minden olyan konfigurációs adatot tároljon, amelyet általában konfigurációs fájlokban vagy környezeti változókban mentene. Egyes adattípusok azonban alkalmasabbak lehetnek más forrásokban való tartózkodásra. Például titkos kulcsokat tárolhat a Key Vaultban, az Azure Storage-ban tárolt fájlokat, a Microsoft Entra-csoportok tagsági adatait vagy egy adatbázis ügyféllistáit.

Továbbra is kihasználhatja az alkalmazáskonfiguráció előnyeit, ha kulcsértékben menti a külső adatokra mutató hivatkozást. A tartalomtípussal megkülönböztetheti az egyes adatforrásokat. Amikor az alkalmazás beolvassa a hivatkozást, betölti a hivatkozott forrásból származó tényleges adatokat, feltéve, hogy rendelkezik a forráshoz szükséges engedélyekkel. Ha módosítja a külső adatok helyét, a teljes alkalmazás frissítése és ismételt üzembe helyezése helyett csak az Alkalmazáskonfigurációban kell frissítenie a hivatkozást.

Az alkalmazáskonfigurációs kulcstartó referenciafunkciója ebben az esetben példa. Lehetővé teszi az alkalmazásokhoz szükséges titkos kulcsok szükség szerinti frissítését, míg a mögöttes titkos kulcsok maguk is a Key Vaultban maradnak.

Alkalmazáskonfigurációs rendszerindítás

Az Azure App Configuration tároló eléréséhez használhat kapcsolati karakterláncot vagy Microsoft Entra azonosítót. Bár a kapcsolati sztringek könnyen elérhetők az Azure Portalon, hitelesítő adatokat tartalmaznak, és titkos kulcsként kell kezelni őket. Ha ezt a módszert választja, tárolja biztonságosan a kapcsolati sztringet az Azure Key Vaultban, és győződjön meg arról, hogy az alkalmazás hitelesíti a Key Vaultot a lekéréshez.

Biztonságosabb és ajánlottabb módszer a Microsoft Entra ID-hitelesítés használata. Ha az alkalmazást az Azure-ban üzemelteti – például az Azure Kubernetes Service-ben, az App Service-ben vagy az Azure Functionsben –, használhatja a Microsoft Entra ID által biztosított felügyelt identitásokat. A felügyelt identitások nem igénylik a titkos kulcsok explicit kezelését. Ezzel a módszerrel az alkalmazás csak az alkalmazáskonfiguráció végpontJÁNAK URL-címét igényli, amely biztonságosan beágyazható az alkalmazás kódjába vagy konfigurációs fájljaiba.

További információ: Felügyelt identitások használata az alkalmazáskonfiguráció eléréséhez.

Az Azure Kubernetes Service hozzáférése az alkalmazáskonfigurációhoz

Az Azure Kubernetes Service-ben (AKS) üzemeltetett számítási feladatokhoz az alábbi lehetőségek érhetők el Azure-alkalmazás konfiguráció eléréséhez. Ezek a beállítások általában a Kubernetesre is érvényesek.

  • Adja hozzá Azure-alkalmazás konfigurációs Kubernetes-szolgáltatót az AKS-fürthöz. A Kubernetes-szolgáltató podként fut a fürtben. Konfigurálási térképeket és titkos kulcsokat hozhat létre kulcsértékekből és Key Vault-hivatkozásokból az Alkalmazáskonfigurációs áruházban. A ConfigMap és a Titkos kód környezeti változókként vagy csatlakoztatott fájlokként használható anélkül, hogy módosításokat kellene igényelnie az alkalmazás kódjához. Ha több alkalmazás is fut ugyanabban az AKS-fürtben, mindegyik hozzáférhet a létrehozott konfigurációtérképekhez és titkos kódokhoz, így nincs szükség az alkalmazáskonfigurációra irányuló egyedi kérésekre. A Kubernetes-szolgáltató a dinamikus konfigurációs frissítéseket is támogatja. Ez az ajánlott lehetőség, ha megvalósítható az Ön számára.

  • Frissítse az alkalmazást Azure-alkalmazás konfigurációszolgáltatói kódtárak használatára. A szolgáltatói kódtárak számos keretrendszerben és nyelven érhetők el, például ASP.NET, .NET, Java Spring, JavaScript/Node.js és Python. Ez a megközelítés teljes hozzáférést biztosít az alkalmazáskonfiguráció funkcióihoz, beleértve a dinamikus konfigurációt és a funkciókezelést. Részletesen szabályozhatja, hogy milyen adatokat töltsön be, és hogy melyik alkalmazáskonfigurációs tárolóból.

  • Integrálható a Kubernetes üzembe helyezésével a Helm használatával. Ha nem kívánja frissíteni az alkalmazását, vagy új podot szeretne hozzáadni az AKS-fürtjéhez, lehetősége van arra, hogy az alkalmazás-konfigurációból származó adatokat a Kubernetes-fürtbe Helm segítségével telepítse. Ez a módszer lehetővé teszi, hogy az alkalmazás továbbra is hozzáférjen a konfigurációhoz a Kubernetes változóiból és titkos kulcsaiból. A Helm-frissítést akkor futtathatja, amikor azt szeretné, hogy az alkalmazás új konfigurációs módosításokat építsen be.

App Service- vagy Azure Functions-hozzáférés az Alkalmazáskonfigurációhoz

Az alkalmazáskonfigurációs szolgáltató vagy az SDK-kódtárak használatával közvetlenül az alkalmazásban érheti el az Alkalmazáskonfigurációt. Ez a megközelítés teljes hozzáférést biztosít az alkalmazáskonfiguráció funkcióihoz, beleértve a dinamikus konfigurációt és a funkciókezelést. Az App Service-ben vagy az Azure Functionsben futó alkalmazás az alábbi módszerek bármelyikével hozzáférhet az Alkalmazáskonfigurációs áruházhoz:

Az alkalmazáskonfigurációs adatokat alkalmazásbeállítások vagy környezeti változókként is elérhetővé teheti az alkalmazás számára. Ezzel a módszerrel elkerülheti az alkalmazáskód módosítását.

Az alkalmazáskonfigurációra irányuló kérések csökkentése

Az alkalmazáskonfigurációra irányuló túlzott kérések szabályozással vagy túlhasználati díjakkal járhatnak. A kérések számának csökkentése:

  • Növelje a frissítési időközt, különösen akkor, ha a konfigurációs értékek nem változnak gyakran. Adjon meg egy új frissítési időközt a SetRefreshInterval metódus használatával.

  • Az egyes kulcsok figyelése helyett egyetlen sentinel-kulcsot kell figyelnie. Csak akkor frissítse az összes konfigurációt, ha a sentinel kulcs megváltozik. Példa: Dinamikus konfiguráció használata ASP.NET Core-alkalmazásban .

  • Használja az alkalmazáskonfigurációs Kubernetes-szolgáltatót , ha több számítási feladatot futtat egy Kubernetes-fürtben, és mindegyik külön-külön kéri le az adatokat az Alkalmazáskonfigurációból. A Kubernetes-szolgáltató adatokat kér le az Alkalmazáskonfigurációból, és Kubernetes ConfigMaps és Titkos kódok néven teszi elérhetővé. Így a számítási feladatok ConfigMaps és Titkos kulcsok használatával férhetnek hozzá az adatokhoz anélkül, hogy külön kellene lekérni az adatokat az alkalmazáskonfigurációból.

  • Engedélyezze az Alkalmazáskonfigurációs tár georeplikációját , és terjessze a kéréseket több replika között. Használjon például egy másik replikát az egyes földrajzi régióktól egy globálisan üzembe helyezett alkalmazáshoz. Minden alkalmazáskonfigurációs replika külön kérelemkvótával rendelkezik. Ez a beállítás modellel biztosítja a méretezhetőséget és a nagyobb rugalmasságot az átmeneti és regionális kimaradásokkal szemben.

Konfigurációs adatok importálása az Alkalmazáskonfigurációba

Az Alkalmazáskonfiguráció lehetővé teszi a konfigurációs beállítások tömeges importálását az aktuális konfigurációs fájlokból az Azure Portal vagy a parancssori felület használatával. Ugyanezekkel a beállításokkal exportálhatja a kulcsértékeket az Alkalmazáskonfigurációból, például a kapcsolódó üzletek között. Ha kódként konfigurálja a konfigurációt, és a GitHubon vagy az Azure DevOpsban kezeli a konfigurációkat, beállíthatja a folyamatos konfigurációs fájlimportálást a GitHub Actions vagy az Azure Pipeline Import Task használatával.

Többrégiós üzembe helyezés az Alkalmazáskonfigurációban

Ha az alkalmazás több régióban van üzembe helyezve, javasoljuk, hogy engedélyezze az alkalmazáskonfigurációs áruház georeplikációját . Engedélyezheti, hogy az alkalmazás elsősorban ahhoz a régióhoz csatlakozzon, amely megfelel az alkalmazás példányainak üzembe helyezésének, és lehetővé teszi számukra, hogy feladatátvételt tegyenek lehetővé más régiókban lévő replikák számára. Ez a beállítás minimálisra csökkenti az alkalmazás és az alkalmazáskonfiguráció közötti késést, elosztja a terhelést, mivel minden replika külön szabályozási kvótákkal rendelkezik, és növeli az alkalmazás átmeneti és regionális leállások elleni rugalmasságát. További információ: Rugalmasság és vészhelyreállítás.

Nagy rugalmasságú alkalmazások létrehozása

Az alkalmazások gyakran a konfigurációra támaszkodnak, ami kritikus fontosságúvá teszi Azure-alkalmazás konfiguráció magas rendelkezésre állását. A nagyobb rugalmasság érdekében az alkalmazásoknak az Alkalmazáskonfiguráció megbízhatósági funkcióit kell használniuk, és érdemes megfontolni a következő intézkedések megtételét az Adott követelmények alapján.

  • Üzembe helyezés az Azure rendelkezésre állási zónájának támogatásával rendelkező régiókban. A rendelkezésre állási zónák lehetővé teszik az alkalmazások számára, hogy rugalmasak legyenek az adatközpontok kimaradásokkal szemben. Az Alkalmazáskonfiguráció zónaredundanciát kínál minden ügyfél számára, külön díjak nélkül. Ajánlott az alkalmazáskonfigurációs áruházat olyan régiókban létrehozni, amelyek támogatják a rendelkezésre állási zónákat. Megtalálhatja azoknak a régióknak a listáját, ahol az alkalmazáskonfiguráció engedélyezte a rendelkezésre állási zónák támogatását.
  • Engedélyezze a georeplikációt , és engedélyezze az alkalmazás számára a feladatátvételt vagy a terhelés elosztását a replikák között. Ez a beállítás modellel biztosítja a méretezhetőséget és a nagyobb rugalmasságot az átmeneti hibák és a regionális kimaradások ellen. További információ: Rugalmasság és vészhelyreállítás.
  • A konfiguráció üzembe helyezése biztonságos üzembe helyezési eljárásokkal. A helytelen vagy véletlen konfigurációs módosítások gyakran okozhatják az alkalmazások leállását. Ha lehetséges, kerülje az éles üzemet közvetlenül érintő konfigurációs módosításokat, például az Azure Portalról. A biztonságos üzembehelyezési eljárásokban (SDP) egy progresszív expozíciós üzemi modell használatával minimalizálhatja az üzembe helyezés által okozott problémák potenciális robbanási sugarát. Ha SDP-t vezet be, létrehozhat és tesztelhet egy konfigurációs pillanatképet , mielőtt éles környezetben üzembe helyezené. Az üzembe helyezés során frissítheti az alkalmazás példányait az új pillanatkép fokozatos felvételéhez. Ha problémákat észlel, visszaállíthatja a módosítást az utolsó ismert jó (LKG) pillanatkép újbóli üzembe helyezésével. A pillanatkép nem módosítható, így az összes üzembe helyezés konzisztenciáját garantálja. A dinamikus konfigurációval együtt pillanatképeket is használhat. Használjon pillanatképet az alapkonfigurációhoz és a dinamikus konfigurációhoz a vészhelyzeti konfiguráció felülbírálásához és a funkciójelzőkhöz.
  • Adja meg a konfigurációt az alkalmazással. Ha biztosítani szeretné, hogy az alkalmazás mindig hozzáférhessen a konfiguráció egy másolatához, vagy ha szeretné elkerülni az alkalmazáskonfiguráció futásidejű függőségét, lekérheti a konfigurációt az Alkalmazáskonfigurációból a buildelés vagy a kiadás ideje alatt, és belefoglalhatja az alkalmazásba. További információkért tekintse meg az alkalmazáskonfiguráció és a CI/CD-folyamat vagy a Kubernetes üzembe helyezésének integrálására vonatkozó példákat.
  • Alkalmazáskonfigurációs szolgáltatók használata. Az alkalmazások kritikus szerepet játszanak a magas rugalmasság elérésében, mivel a futásidejük során felmerülő problémákat, például a hálózati problémákat figyelembe tudják venni, és gyorsabban reagálhatnak a hibákra. Az alkalmazáskonfiguráció-szolgáltatók számos beépített rugalmassági funkciót kínálnak, beleértve az automatikus replikafelderítést, a replika feladatátvételét, a testre szabható időtúllépésekkel való újrapróbálkozást, a konfiguráció gyorsítótárazását és a megbízható konfigurációfrissítéshez szükséges adaptív stratégiákat. Kifejezetten ajánlott alkalmazáskonfigurációs szolgáltatókkal kihasználni ezeket a funkciókat. Ha ez nem megoldás, érdemes megfontolnia hasonló funkciók implementálását az egyéni megoldásban a legmagasabb szintű rugalmasság elérése érdekében.

Ügyfélalkalmazások az Alkalmazáskonfigurációban

Ha alkalmazáskonfigurációt használ az ügyfélalkalmazásokban, győződjön meg arról, hogy két fő tényezőt is figyelembe vesz. Először is, ha egy ügyfélalkalmazásban használja a kapcsolati sztring, az alkalmazáskonfigurációs áruház hozzáférési kulcsának nyilvánosan hozzáférhetővé kell tennie. Másodszor, az ügyfélalkalmazások jellemző mérete túlzott kéréseket okozhat az Alkalmazáskonfigurációs áruházba, ami túlhasználati díjakat vagy szabályozást eredményezhet. A szabályozással kapcsolatos további információkért tekintse meg a gyakori kérdéseket.

A problémák megoldása érdekében javasoljuk, hogy használjon proxyszolgáltatást az ügyfélalkalmazások és az Alkalmazáskonfigurációs áruház között. A proxyszolgáltatás biztonságosan hitelesíthető az Alkalmazáskonfigurációs áruházban anélkül, hogy a hitelesítési adatok kiszivárogtatásával kapcsolatos biztonsági probléma merült fel. Proxyszolgáltatást az alkalmazáskonfigurációs szolgáltatói kódtárak egyikével hozhat létre, így kihasználhatja a beépített gyorsítótárazási és frissítési képességeket az Alkalmazáskonfigurációnak küldött kérelmek mennyiségének optimalizálásához. Az alkalmazáskonfigurációs szolgáltatók használatával kapcsolatos további információkért tekintse meg a rövid útmutatókban és oktatóanyagokban található cikkeket. A proxyszolgáltatás a gyorsítótárból az ügyfélalkalmazások számára biztosítja a konfigurációt, és elkerülheti az ebben a szakaszban tárgyalt két lehetséges problémát.

Több-bérlős alkalmazások az Alkalmazáskonfigurációban

A több-bérlős alkalmazások olyan architektúrára épülnek, amelyben az alkalmazás megosztott példánya több ügyfelet vagy bérlőt szolgál ki. Előfordulhat például, hogy rendelkezik egy e-mail szolgáltatással, amely külön fiókokat és testre szabott szolgáltatásokat kínál a felhasználóknak. Az alkalmazás általában az egyes bérlők különböző konfigurációit kezeli. Íme néhány architekturális szempont az alkalmazáskonfiguráció több-bérlős alkalmazásokban való használatához. Hivatkozhat a több-bérlős alkalmazások beállítására szolgáló példakódra is.

Konfiguráció kódként

A kódként való konfigurálás a konfigurációs fájlok forráskonfigurációs rendszer alatti kezelésének gyakorlata, például egy Git-adattár. Ez olyan előnyöket biztosít, mint a nyomon követhetőség és a jóváhagyási folyamat minden konfigurációs módosítás esetén. Ha kódként konfigurálja a konfigurációt, az Alkalmazáskonfiguráció olyan eszközökkel rendelkezik, amely segít a konfigurációs adatok fájlokban való kezelésében és üzembe helyezésében a buildelési, kiadási vagy CI/CD-folyamat részeként. Így az alkalmazások hozzáférhetnek a legújabb adatokhoz az Alkalmazáskonfigurációs áruházból.

  • A GitHub esetében a GitHub-adattárból importálhat konfigurációs fájlokat az Alkalmazáskonfigurációs áruházba a GitHub Actions használatával
  • Az Azure DevOps esetében a Azure-alkalmazás konfigurációimportálást, egy Azure-folyamatfeladatot is belefoglalhatja a buildelési vagy kiadási folyamatokba az adatszinkronizáláshoz.
  • Mások számára a CI/CD-rendszer részeként importálhat konfigurációs fájlokat az Alkalmazáskonfigurációba az Azure CLI használatával. További információ: az appconfig kv import.

Ez a modell lehetővé teszi, hogy érvényesítési és tesztelési lépéseket is belefoglaljon az adatok alkalmazáskonfigurációba való véglegesítése előtt. Ha több alkalmazáskonfigurációs tárolót használ, a konfigurációs adatokat növekményesen vagy egyszerre is leküldheti hozzájuk.

Következő lépések