Azure App Configuration osvědčené postupy
Tento článek popisuje běžné vzory a osvědčené postupy při používání Azure App Configuration.
Klíčová seskupení
App Configuration nabízí dvě možnosti 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 mohou obsahovat více součástí připojených oddělovačem, například , podobně jako cesta / URL, a vytvořit tak obor názvů. Tyto hierarchie jsou užitečné, když ukládáte klíče pro mnoho aplikací a mikroslužeb v jednom App Configuration úložiště.
Je důležité mít na paměti, že klíče jsou tím, na co kód aplikace odkazuje, aby načítá hodnoty odpovídajících nastavení. Klíče by se neměly měnit, jinak budete muset kód upravit pokaždé, když k tomu dojde.
Popisky jsou atributem klíčů. Používají se k vytváření variant klíče. Popisky můžete například přiřadit více verzím klíče. Verzí může být iterace, prostředí nebo jiné kontextové informace. Aplikace si může vyžádat zcela 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 se všemi uloženými klíči za nezávislé entity. App Configuration se nepokusí odvodit žádnou relaci mezi klíči ani dědit hodnoty klíčů na základě jejich hierarchie. Můžete však agregovat více sad klíčů pomocí popisků, které jsou v kódu aplikace sdruovány se správným skládaným konfiguračním kódem.
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í. Vytvoříte klíč s názvem "Asset1" s prázdným popiskem a popiskem s názvem "Development". Do prvního popisku zadáte výchozí hodnotu Asset1 a do druhé zadáte konkrétní hodnotu pro "Development".
V kódu nejprve načtete hodnoty klíče bez jakýchkoli popisků a potom znovu načtete stejnou sadu hodnot klíčů s popiskem Vývoj. Když hodnoty načtete podruhé, přepíšou se předchozí hodnoty klíčů. Konfigurační systém .NET Core 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. S moderním programovacím rozhraním, jako je .NET Core, získáte tuto funkci stackingu zdarma, pokud pro přístup k této funkci použijete nativního poskytovatele App Configuration. Následující fragment kódu ukazuje, jak můžete implementovat skládaní v aplikaci .NET Core:
// 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");
});
Úplný příklad najdete v části Popisky, které umožňují různé konfigurace pro různá prostředí.
Odkazy na externí data
App Configuration je navržený tak, aby ukládal jakákoli konfigurační data, která byste normálně ukládali do konfiguračních souborů nebo proměnných prostředí. Některé typy dat se ale mohou lépe nacházet v jiných zdrojích. Můžete například ukládat tajné kódy do Key Vault, soubory v Azure Storage, informace o členství ve skupinách Azure AD nebo seznamy zákazníků v databázi.
Stále můžete využít výhody App Configuration uložením odkazu na externí data v klíč-hodnota. K rozlišení jednotlivých zdrojů dat můžete použít typ obsahu. Když vaše aplikace načte odkaz, načtete data z odkazovaného zdroje. V případě, že změníte umístění externích dat, budete muset aktualizovat odkaz pouze v App Configuration místo aktualizace a opětovného nasazení celé aplikace.
Příkladem App Configuration Key Vault referenční funkce. Umožňuje podle potřeby aktualizovat tajné kódy potřebné pro aplikaci, zatímco samotné podkladové tajné kódy zůstanou Key Vault.
App Configuration bootstrap
Pro přístup App Configuration úložiště můžete použít jeho připojovací řetězec, který je k dispozici v Azure Portal. Vzhledem k tomu, že připojovací řetězce obsahují přihlašovací údaje, považují se za tajné kódy. Tyto tajné kódy musí být uložené Azure Key Vault a váš kód se musí ověřit, Key Vault je načíst.
Lepší možností je použít funkci spravovaných identit v Azure Active Directory. U spravovaných identit potřebujete pouze adresu URL koncového App Configuration pro spuštění přístupu k vašemu App Configuration store. Adresu URL můžete vložit do kódu aplikace (například do souboru appsettings.json). Podrobnosti najdete v tématu Integrace se spravovanými identitami Azure.
Přístup aplikací nebo funkcí k App Configuration
Přístup k datům App Configuration Web Apps nebo Azure Functions můžete poskytnout pomocí kterékoli z následujících metod:
- Prostřednictvím Azure Portal zadejte připojovací řetězec k vašemu App Configuration v nastavení aplikace v App Service.
- Uložte připojovací řetězec do úložiště App Configuration v Key Vault a odkazujte na něj z App Service.
- Použití spravovaných identit Azure pro přístup k App Configuration storu Další informace najdete v tématu Integrace se spravovanými identitami Azure.
- Nabízená konfigurace z App Configuration do App Service. App Configuration poskytuje funkci exportu (v Azure Portal a Azure CLI), která odesílá data přímo do App Service. Pomocí této metody nemusíte měnit kód aplikace vůbec.
Omezení požadavků na App Configuration
Nadměrné požadavky na App Configuration mohou vést k omezování nebo poplatkům za nadplatná. Pokud chcete snížit počet provedených požadavků:
Zvyšte časový limit aktualizace, zejména v případě, že se hodnoty konfigurace často nemění. Zadejte nový časový limit aktualizace pomocí
SetCacheExpirationmetody.Místo sledování jednotlivých klíčů sledujte jeden klíč sentinelu. Aktualizovat všechny konfigurace pouze v případě, že se změní klíč sentinelu. Příklad najdete v tématu Použití dynamické ASP.NET Core aplikaci.
Pomocí Azure Event Grid můžete dostávat oznámení při změně konfigurace a ne neustále se dotazovat na změny. Další informace najdete v tématu Použití Event Grid pro App Configuration změn dat.
Rozprostřít požadavky napříč několika App Configuration obchody. Pro globálně nasazenou aplikaci můžete například použít jiné úložiště z každé geografické oblasti. Každé App Configuration má vlastní kvótu požadavků. Toto nastavení poskytuje model pro škálovatelnost a zabraňuje jedinému bodu selhání.
Import konfiguračních dat do App Configuration
App Configuration nabízí možnost hromadného importu nastavení konfigurace z aktuálních konfiguračních souborů pomocí Azure Portal rozhraní příkazového řádku. Stejné možnosti můžete použít také k exportu hodnot klíčů z App Configuration, například mezi souvisejícími obchody. Pokud chcete nastavit průběžnou synchronizaci s úložištěm v GitHub nebo Azure DevOps, můžete použít naši akci GitHub nebo úlohu nabízeného oznámení kanálu Azure, abyste mohli dál používat stávající postupy správy zdrojového kódu a současně využívat výhody App Configuration.
Nasazení ve více oblastech v App Configuration
App Configuration je regionální služba. Pro aplikace s různými konfiguracemi na oblast může uložení těchto konfigurací v jedné instanci vytvořit jediný bod selhání. Lepší možností může App Configuration nasazení jedné instance pro každou oblast napříč několika oblastmi. Může pomoct s regionálním zotavením po havárii, výkonem a sila zabezpečení. Konfigurace podle oblasti také zvyšuje latenci a využívá oddělené kvóty omezování, protože omezování platí pro každou instanci. Pokud chcete použít omezení rizik zotavení po havárii, můžete použít několik úložišť konfigurace.
Klientské aplikace v App Configuration
Při použití nástroje App Configuration v klientských aplikacích je třeba vzít v úvahu dva hlavní faktory. Zaprvé, pokud používáte připojovací řetězec v klientské aplikaci, riskujete vystavení přístupového klíče vašeho App Configuration úložiště veřejnosti. Za druhé, typické škálování klientské aplikace může způsobit nadměrné požadavky na App Configuration úložiště, což může vést k poplatkům za nad využití nebo omezování. Další informace o omezování najdete v nejčastějších dotazech.
K řešení těchto problémů doporučujeme používat službu proxy mezi vašimi klientskými aplikacemi a App Configuration úložištěm. Služba proxy se může bezpečně ověřit ve vašem App Configuration úložiště bez problému se zabezpečením úniku ověřovacích informací. Službu proxy můžete vytvořit pomocí jedné z knihoven zprostředkovatele App Configuration, takže můžete využít integrované funkce ukládání do mezipaměti a aktualizace pro optimalizaci objemu požadavků odeslaných do App Configuration. Další informace o používání zprostředkovatelů App Configuration najdete v článcích rychlých zprovoznění a kurzů. Služba proxy slouží ke konfiguraci z mezipaměti klientským aplikacím a vy se vyhnete dvěma potenciálním problémům, které jsou popsány v této části.
Konfigurace jako kód
Konfigurace jako kódu je postup správy konfiguračních souborů v systému správy zdrojového kódu, například úložiště Git. Poskytuje výhody, jako je sledovatelnost a schvalovací proces pro všechny změny konfigurace. Pokud konfiguraci přijmete jako kód, App Configuration nástroje, které vám pomohou s nasazením konfiguračních dat. Aplikace tak budou mít přístup k nejnovějším datům z App Configuration úložiště.
- Například GitHub pro své úložiště povolit App Configuration synchronní GitHub dat. Změny konfiguračních souborů se synchronizují do App Configuration automaticky při každém sloučení žádosti o vyžádání změn.
- Například Azure DevOps do kanálů buildu nebo verze prosynchronizaci Azure App Configuration push , úlohu kanálu Azure.
- Konfigurační soubory můžete také importovat do App Configuration pomocí Azure CLI jako součásti systému CI/CD. Další informace najdete v tématu az appconfig kv import.
Tento model umožňuje zahrnout ověřovací a testovací kroky před potvrzením, že data App Configuration. Pokud používáte více úložišť App Configuration, můžete do nich také postupně nebo najednou nasažovat konfigurační data.