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 a kulcsok kezdő részei. A kulcsok egy csoportját logikailag csoportosíthatja ugyanazzal az előtaggal a nevükben. Az előtagok több összetevőt is tartalmazhatnak, amelyeket egy elválasztó köt össze, például /egy URL-elérési úthoz hasonlóan, hogy névteret alakítsanak ki. Ezek a hierarchiák akkor hasznosak, ha kulcsokat tárol számos alkalmazáshoz és mikroszolgáltatáshoz egy Alkalmazáskonfigurációs áruházban.

Fontos szem előtt tartani, hogy az alkalmazáskód a kulcsokra hivatkozik a megfelelő beállítások értékeinek lekéréséhez. A kulcsok nem változhatnak, különben minden alkalommal módosítania kell a kódot.

A címkék a kulcsok attribútumai. Kulcsvariánsok létrehozására szolgálnak. Például címkéket rendelhet egy kulcs több verziójához. A verzió lehet iteráció, környezet vagy más környezeti információ. Az alkalmazás egy másik címke megadásával kérheti a kulcsértékek teljesen eltérő készletét. Ennek eredményeképpen az összes kulcshivatkozás változatlan marad a kódban.

Kulcs-érték kompozíciók

Az Alkalmazáskonfiguráció a vele együtt tárolt kulcsokat független entitásokként kezeli. Az alkalmazáskonfiguráció nem próbál kapcsolatot kikövetkelni a kulcsok között, és nem örökli a kulcsértékeket a hierarchiájuk alapján. Több kulcskészletet is összesíthet, ha az alkalmazáskódban megfelelő konfigurációs halmozással párosított címkéket használ.

Lássunk egy példát. Tegyük fel, hogy rendelkezik egy Asset1 nevű beállítással, amelynek értéke a fejlesztési környezettől függően változhat. Létrehoz egy "Asset1" nevű kulcsot egy üres címkével és egy "Fejlesztés" nevű címkével. Az első címkén az Eszköz1 alapértelmezett értékét, az utóbbiban pedig a "Fejlesztés" értéket adja meg.

A kódban először címkék nélkül kéri le a kulcsértékeket, majd másodszor is lekéri ugyanazt a kulcsértékkészletet a "Fejlesztés" címkével. Amikor másodszor kéri le az értékeket, a rendszer felülírja a kulcsok korábbi értékeit. A .NET konfigurációs rendszer lehetővé teszi, hogy több konfigurációs adatkészletet "halmozjon fel" egymás fölé. Ha egy kulcs több halmazban is létezik, a rendszer az azt tartalmazó utolsó készletet használja. Egy modern programozási keretrendszerrel, például a .NET-tel ezt a halmozási képességet ingyenesen szerezheti be, ha natív konfigurációs szolgáltatót használ az alkalmazáskonfiguráció eléréséhez. Az alábbi kódrészlet bemutatja, hogyan implementálható a halmozás egy .NET-alkalmazásban:

// Augment the ConfigurationBuilder with Azure App Configuration
// Pull the connection string from an environment variable
configBuilder.AddAzureAppConfiguration(options => {
    options.Connect(configuration["connection_string"])
           .Select(KeyFilter.Any, LabelFilter.Null)
           .Select(KeyFilter.Any, "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.

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 Alkalmazáskonfigurációs áruház eléréséhez használhatja annak kapcsolati sztring, amely az Azure Portalon érhető el. Mivel kapcsolati sztring hitelesítő adatokat tartalmaznak, titkos kulcsnak számítanak. Ezeket a titkos kulcsokat az Azure Key Vaultban kell tárolni, és a kódnak hitelesítenie kell őket a Key Vaultban.

Jobb megoldás a Felügyelt identitások funkció használata a Microsoft Entra ID-ban. Felügyelt identitások használatakor csak az alkalmazáskonfiguráció végpontjának URL-címére van szüksége az Alkalmazáskonfigurációs áruházhoz való hozzáférés elindításához. Az URL-címet beágyazhatja az alkalmazás kódjába (például a appsettings.json fájlba). Részletekért lásd: 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épek é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óhoz Térképek és titkos kódokhoz, így nincs szükség az alkalmazáskonfigurációra irányuló egyéni 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 szeretné frissíteni az alkalmazást, vagy új podot szeretne hozzáadni az AKS-fürthöz, lehetősége van arra, hogy az alkalmazáskonfigurációból származó adatokat a Kubernetes-fürtbe hozza a Helm üzembe helyezéssel történő használatával. 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:

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 folyamatos szinkronizálást szeretne beállítani az adattárral a GitHubon vagy az Azure DevOpsban, használhatja a GitHub-műveletünket vagy az Azure Pipeline Push-feladatunkat, hogy továbbra is használni tudja a meglévő forrásvezérlési eljárásokat az alkalmazáskonfiguráció előnyeinek kihasználásá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éseket az Ön igényeinek megfelelően.

  • Ü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 replikák közötti feladatátvételt. 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.

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áz(ok)ból.

  • A GitHub esetében engedélyezheti az Alkalmazáskonfiguráció szinkronizálása GitHub-műveletet az adattárhoz. A rendszer automatikusan szinkronizálja a konfigurációs fájlok módosításait az Alkalmazáskonfigurációba, amikor egyesít egy lekéréses kérelmet.
  • Az Azure DevOps esetében a Azure-alkalmazás Configuration Pusht, egy Azure-folyamat feladatot is belefoglalhatja az adatszinkronizáláshoz szükséges build- vagy kiadási folyamatokba.
  • Konfigurációs fájlokat is importálhat az Alkalmazáskonfigurációba az Azure CLI-vel a CI/CD-rendszer részeként. 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