Osvědčené postupy konfigurace Aplikace Azure

Tento článek popisuje běžné vzory a osvědčené postupy při používání Aplikace Azure Konfigurace.

Seskupování klíčů

App Configuration nabízí dvě možnosti pro uspořádání klíčů:

  • Předpony klíčů
  • Popisky

K seskupení klíčů můžete použít jednu nebo obě možnosti.

Předpony klíčů jsou počáteční části klíčů. Sadu klíčů můžete logicky seskupit pomocí stejné předpony v jejich názvech. Předpony můžou obsahovat více součástí propojených oddělovačem, například /, podobně jako cesta url, a vytvořit obor názvů. Tyto hierarchie jsou užitečné, když ukládáte klíče pro mnoho aplikací a mikroslužeb v jednom obchodě App Configuration.

Důležité je mít na paměti, že klíče jsou to, na co váš kód aplikace odkazuje, aby načetly hodnoty odpovídajících nastavení. Klíče by se neměly měnit nebo jinak budete muset kód upravovat pokaždé, když k tomu dojde.

Popisky jsou atributem klíčů. Slouží k vytváření variant klíče. Můžete například přiřadit popisky více verzím klíče. Verze může být iterace, prostředí nebo jiné kontextové informace. Aplikace si může vyžádat úplně jinou sadu hodnot klíčů zadáním jiného popisku. V důsledku toho zůstanou všechny klíčové odkazy v kódu beze změny.

Složení klíč-hodnota

App Configuration považuje všechny klíče uložené s ním za nezávislé entity. App Configuration se nepokouší odvodit žádný vztah mezi klíči nebo dědit hodnoty klíčů na základě jejich hierarchie. Můžete ale agregovat více sad klíčů pomocí popisků ve spojení se správným stackováním konfigurace v kódu aplikace.

Podívejme se na příklad. Předpokládejme, že máte nastavení s názvem Asset1, jehož hodnota se může lišit v závislosti na vývojovém prostředí. Klíč s názvem Asset1 vytvoříte s prázdným popiskem a popiskem s názvem Vývoj. V prvním popisku zadáte výchozí hodnotu asset1 a do druhé hodnoty zadáte konkrétní hodnotu "Development".

V kódu nejprve načtete hodnoty klíče bez popisků a potom znovu načtete stejnou sadu hodnot klíčů s popiskem Vývoj. Při druhém načtení hodnot se přepíšou předchozí hodnoty klíčů. Konfigurační systém .NET umožňuje "naskládat" několik sad konfiguračních dat na sebe navzájem. Pokud klíč existuje ve více než jedné sadě, použije se poslední sada, která ho obsahuje. Díky moderní programovací architektuře, jako je .NET, získáte tuto možnost stackingu zdarma, pokud pro přístup ke službě App Configuration použijete nativního zprostředkovatele konfigurace. Následující fragment kódu ukazuje, jak můžete implementovat stacking v aplikaci .NET:

// 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");
});

Použití popisků k povolení různých konfigurací pro různá prostředí poskytuje úplný příklad.

Odkazy na externí data

App Configuration je navržený tak, aby ukládaly všechna konfigurační data, která byste normálně uložili do konfiguračních souborů nebo proměnných prostředí. Některé typy dat ale můžou být vhodnější pro použití v jiných zdrojích. Například ukládat tajné kódy ve službě Key Vault, soubory ve službě Azure Storage, informace o členství ve skupinách Microsoft Entra nebo seznamy zákazníků v databázi.

Službu App Configuration můžete dál využívat uložením odkazu na externí data v klíč-hodnota. Typ obsahu můžete použít k rozlišení jednotlivých zdrojů dat. Když aplikace přečte odkaz, načte skutečná data z odkazovaného zdroje za předpokladu, že má potřebná oprávnění ke zdroji. Pokud změníte umístění externích dat, stačí aktualizovat odkaz pouze v Konfiguraci aplikace místo aktualizace a opětovného nasazení celé aplikace.

Referenční funkce služby Key Vault pro konfiguraci aplikace je v tomto případě příkladem. Umožňuje, aby se tajné kódy potřebné pro aplikaci aktualizovaly podle potřeby, zatímco samotné základní tajné kódy zůstanou ve službě Key Vault.

Bootstrap konfigurace aplikace

Pokud chcete získat přístup k App Configuration Storu, můžete použít jeho připojovací řetězec, který je k dispozici na webu Azure Portal. Protože připojovací řetězec obsahují informace o přihlašovacích údajích, považují se za tajné kódy. Tyto tajné kódy musí být uložené ve službě Azure Key Vault a váš kód se musí ověřit ve službě Key Vault, aby je načetl.

Lepší možností je použít funkci spravovaných identit v Microsoft Entra ID. U spravovaných identit potřebujete pouze adresu URL koncového bodu konfigurace aplikace, abyste mohli spustit přístup ke službě App Configuration Store. Adresu URL můžete vložit do kódu aplikace (například do souboru appsettings.json ). Podrobnosti najdete v tématu Použití spravovaných identit pro přístup ke službě App Configuration .

Přístup ke službě Azure Kubernetes Service ke službě App Configuration

Pro úlohy hostované ve službě Azure Kubernetes Service (AKS) jsou k dispozici následující možnosti pro přístup ke konfiguraci Aplikace Azure. Tyto možnosti platí také pro Kubernetes obecně.

  • Přidejte do clusteru AKS poskytovatele Aplikace Azure Configuration Kubernetes. Poskytovatel Kubernetes běží v clusteru jako pod. Může vytvořit konfiguraci Mapy a tajné kódy z hodnot klíčů a odkazů služby Key Vault v obchodě App Configuration Store. Objekt ConfigMap a Secret jsou možné použít jako proměnné prostředí nebo připojené soubory bez nutnosti jakýchkoli úprav kódu aplikace. Pokud máte ve stejném clusteru AKS spuštěných více aplikací, můžou všechny přistupovat ke vygenerované konfiguraci Mapy a tajným kódům a eliminují potřebu jednotlivých požadavků na konfiguraci aplikace. Poskytovatel Kubernetes podporuje také dynamické aktualizace konfigurace. Toto je doporučená možnost, pokud je to pro vás možné.

  • Aktualizujte aplikaci tak, aby používala knihovny poskytovatele konfigurace Aplikace Azure. Knihovny poskytovatelů jsou dostupné v mnoha architekturách a jazycích, jako jsou ASP.NET, .NET, Java Spring, JavaScript/Node.js a Python. Tento přístup poskytuje úplný přístup k funkcím služby App Configuration, včetně dynamické konfigurace a správy funkcí. Máte podrobnou kontrolu nad tím, jaká data se mají načíst a ze kterého úložiště App Configuration pro každou aplikaci.

  • Integrace s nasazením Kubernetes pomocí Helmu Pokud nechcete aktualizovat aplikaci nebo do clusteru AKS přidat nový pod, máte možnost převést data z konfigurace aplikace do clusteru Kubernetes pomocí nástroje Helm prostřednictvím nasazení. Tento přístup umožňuje vaší aplikaci pokračovat v přístupu ke konfiguraci z proměnných a tajných kódů Kubernetes. Upgrade Helmu můžete spustit vždy, když chcete, aby vaše aplikace zahrnovala nové změny konfigurace.

Přístup ke službě App Service nebo Azure Functions ke službě App Configuration

Pro přístup ke službě App Configuration přímo ve vaší aplikaci použijte zprostředkovatele služby App Configuration nebo knihovny sdk. Tento přístup poskytuje úplný přístup k funkcím služby App Configuration, včetně dynamické konfigurace a správy funkcí. Vaše aplikace spuštěná ve službě App Service nebo Azure Functions může získat přístup ke službě App Configuration Store pomocí některé z následujících metod:

Data konfigurace aplikace můžete také zpřístupnit vaší aplikaci jako nastavení aplikace nebo proměnné prostředí. Díky tomuto přístupu se můžete vyhnout změnám kódu aplikace.

Omezení požadavků provedených ve službě App Configuration

Nadměrné požadavky na konfiguraci aplikace můžou vést k omezování nebo poplatkům za nadlimitní využití. Snížení počtu provedených požadavků:

  • Zvyšte časový limit aktualizace, zejména pokud se hodnoty konfigurace často nemění. Zadejte nový časový limit aktualizace pomocí SetCacheExpiration metody.

  • Místo sledování jednotlivých klíčů sledujte jeden klíč sentinelu. Aktualizujte všechny konfigurace pouze v případě, že se změní klíč sentinelu. Příklad najdete v tématu Použití dynamické konfigurace v aplikaci ASP.NET Core.

  • Pomocí Azure Event Gridu můžete dostávat oznámení, když se změní konfigurace, a ne neustálé dotazování na jakékoli změny. Další informace najdete v tématu Použití Event Gridu pro oznámení o změnách dat konfigurace aplikace.

  • Povolte geografickou replikaci úložiště App Configuration a rozložte požadavky mezi více replik. Například pro globálně nasazenou aplikaci použijte jinou repliku z každé geografické oblasti. Každá replika konfigurace aplikace má svou samostatnou kvótu požadavků. Toto nastavení poskytuje model pro škálovatelnost a vylepšenou odolnost proti přechodným a regionálním výpadkům.

Import konfiguračních dat do služby App Configuration

App Configuration nabízí možnost hromadně importovat nastavení konfigurace z aktuálních konfiguračních souborů pomocí webu Azure Portal nebo rozhraní příkazového řádku. Stejné možnosti můžete použít také k exportu hodnot klíčů z Konfigurace aplikace, například mezi souvisejícími obchody. Pokud chcete nastavit průběžnou synchronizaci s vaším úložištěm v GitHubu nebo Azure DevOps, můžete použít naši úlohu GitHub Action nebo Azure Pipeline Push, abyste mohli dál používat stávající postupy správy zdrojového kódu a získat výhody služby App Configuration.

Nasazení ve více oblastech ve službě App Configuration

Pokud je vaše aplikace nasazená ve více oblastech, doporučujeme povolit geografickou replikaci úložiště App Configuration Store. Aplikaci můžete povolit, aby se primárně připojila k replice odpovídající oblasti, ve které jsou nasazené instance vaší aplikace, a umožnit jim převzetí služeb při selhání replikám v jiných oblastech. Toto nastavení minimalizuje latenci mezi vaší aplikací a službou App Configuration, rozdělí zatížení, protože každá replika má samostatné kvóty omezování a zvyšuje odolnost vaší aplikace proti přechodným a regionálním výpadkům. Další informace najdete v tématu Odolnost a zotavení po havárii.

Sestavování aplikací s vysokou odolností

Aplikace často spoléhají na spuštění konfigurace, což Aplikace Azure Konfigurace je velmi důležité. Kvůli lepší odolnosti by aplikace měly využívat funkce spolehlivosti služby App Configuration a zvážit přijetí následujících opatření na základě vašich konkrétních požadavků.

  • Zřizování v oblastech s podporou zóny dostupnosti Azure Zóny dostupnosti umožňují aplikacím být odolné vůči výpadkům datových center. App Configuration nabízí zónovou redundanci pro všechny zákazníky bez dalších poplatků. Doporučujeme vytvořit úložiště App Configuration v oblastech s podporou zón dostupnosti. Můžete najít seznam oblastí , ve kterých služba App Configuration povolila podporu zóny dostupnosti.
  • Povolte geografickou replikaci a povolte aplikaci převzetí služeb při selhání mezi replikami. Toto nastavení poskytuje model pro škálovatelnost a vylepšenou odolnost proti přechodným selháním a oblastním výpadkům. Další informace najdete v tématu Odolnost a zotavení po havárii.
  • Nasazení konfigurace s využitím postupů bezpečného nasazení Nesprávné nebo náhodné změny konfigurace můžou často způsobit výpadky aplikace. Pokud je to možné, měli byste se vyhnout změnám konfigurace, které mají vliv na produkční prostředí přímo z webu Azure Portal. V postupech bezpečného nasazení (SDP) použijete model postupného nasazení expozice k minimalizaci potenciálního poloměru výbuchu problémů způsobených nasazením. Pokud přijmete protokol SDP, můžete vytvořit a otestovat snímek konfigurace před jeho nasazením do produkčního prostředí. Během nasazování můžete aktualizovat instance aplikace, aby se postupně zvedá nový snímek. Pokud se zjistí problémy, můžete změnu vrátit zpět opětovným nasazením posledního známého snímku (LKG). Snímek je neměnný a zaručuje konzistenci ve všech nasazeních. Snímky můžete využít společně s dynamickou konfigurací. Použijte snímek pro základní konfiguraci a dynamickou konfiguraci pro přepsání konfigurace tísňového volání a příznaky funkcí.
  • Zahrňte konfiguraci do aplikace. Pokud chcete zajistit, aby vaše aplikace vždy získala přístup ke kopii konfigurace, nebo pokud chcete zabránit úplné závislosti modulu runtime na konfiguraci aplikace, můžete konfiguraci stáhnout z konfigurace aplikace během sestavování nebo vydání a zahrnout ji do aplikace. Další informace najdete v příkladech integrace služby App Configuration s kanálem CI/CD nebo nasazením Kubernetes.
  • Použijte zprostředkovatele konfigurace aplikací. Aplikace hrají důležitou roli při dosažení vysoké odolnosti, protože můžou zohledňovat problémy vzniklé během běhu, jako jsou problémy se sítí, a rychleji reagovat na selhání. Poskytovatelé konfigurace aplikací nabízejí řadu integrovaných funkcí odolnosti, včetně automatického zjišťování replik, převzetí služeb při selhání repliky, opakování při spuštění s přizpůsobitelnými časovými limity, ukládáním do mezipaměti konfigurace a adaptivními strategiemi pro spolehlivou aktualizaci konfigurace. Důrazně doporučujeme, abyste tyto funkce využili pomocí zprostředkovatelů služby App Configuration. Pokud to není možnost, měli byste zvážit implementaci podobných funkcí ve vlastním řešení, abyste dosáhli nejvyšší úrovně odolnosti.

Klientské aplikace v App Configuration

Při použití konfigurace aplikace v klientských aplikacích se ujistěte, že zvažujete dva hlavní faktory. Za prvé, pokud používáte připojovací řetězec v klientské aplikaci, riskujete zveřejnění přístupového klíče úložiště App Configuration pro veřejnost. Za druhé, typická škála klientské aplikace může způsobit nadměrné požadavky do vašeho obchodu App Configuration Store, což může vést k poplatkům za nadlimitní využití nebo omezování. Další informace o omezování najdete v nejčastějších dotazech.

Pokud chcete tyto obavy vyřešit, doporučujeme použít proxy službu mezi klientskými aplikacemi a úložištěm App Configuration. Proxy služba se může bezpečně ověřit ve službě App Configuration Store bez bezpečnostních problémů s únikem ověřovacích informací. Proxy službu můžete vytvořit pomocí jedné z knihoven zprostředkovatele konfigurace aplikace, abyste mohli využít integrované funkce ukládání do mezipaměti a aktualizace pro optimalizaci objemu požadavků odesílaných do služby App Configuration. Další informace o používání zprostředkovatelů konfigurace aplikací najdete v článcích rychlých startů a kurzů. Proxy služba obsluhuje konfiguraci z mezipaměti do klientských aplikací a vy se vyhnete dvěma potenciálním problémům, které jsou popsány v této části.

Víceklientských aplikací v App Configuration

Víceklientová aplikace je postavená na architektuře, ve které sdílená instance vaší aplikace obsluhuje více zákazníků nebo tenantů. Můžete mít například e-mailovou službu, která uživatelům nabízí samostatné účty a přizpůsobené prostředí. Vaše aplikace obvykle spravuje různé konfigurace pro každého tenanta. Tady je několik aspektů architektury pro použití služby App Configuration ve víceklientské aplikaci.

Konfigurace jako kód

Konfigurace jako kód je postup správy konfiguračních souborů ve vašem systému správy zdrojového kódu, například úložiště Git. Poskytuje výhody, jako je sledovatelnost a proces schvalování pro všechny změny konfigurace. Pokud jako kód přijmete konfiguraci, app Configuration obsahuje nástroje, které vám pomůžou při správě konfiguračních dat v souborech a jejich nasazení v rámci procesu sestavení, vydání nebo CI/CD. Díky tomu můžou vaše aplikace přistupovat k nejnovějším datům z vašich obchodů app Configuration Store.

  • Pro GitHub můžete pro své úložiště povolit akci GitHubu synchronizace konfigurace aplikace. Změny konfiguračních souborů se automaticky synchronizují do služby App Configuration při každé sloučení žádosti o přijetí změn.
  • V případě Azure DevOps můžete do kanálů buildu nebo verze zahrnout Aplikace Azure nabízenou konfiguraci, úlohu kanálu Azure pro synchronizaci dat.
  • Konfigurační soubory můžete také importovat do služby App Configuration pomocí Azure CLI jako součást systému CI/CD. Další informace najdete v tématu az appconfig kv import.

Tento model umožňuje zahrnout kroky ověření a testování před potvrzením dat do služby App Configuration. Pokud používáte více úložišť App Configuration, můžete do nich také odeslat konfigurační data přírůstkově nebo všechny najednou.

Další kroky