我们有一个内置于Azure应用中的大型系统。它由用于我们的API的应用服务和用于后端处理的多个功能应用组成。
允许这些应用共享配置的最佳方法是什么?
我们目前使用ARM模板为每个应用程序设置环境变量,这对于部署时很好,但是没有什么可以使配置在应用程序之间保持同步。
用例可能是控制子系统是否可运行的功能标志。我们可能希望在API和Functions App中使用此标志。目前,我们可以手动进入并在每个应用程序中设置变量,但是如果只需要在一个位置进行操作,将更易于管理。
理想情况下,Azure会检测到对配置的任何更新,并触发服务的重新启动,就像本机实现当前所发生的那样。
是否有一种好的现成的方法来做到这一点?还是我将使用数据库中的表和轻量级函数滚动自己的数据库?
答案 0 :(得分:6)
一种方法是使用新的应用程序配置服务:https://docs.microsoft.com/en-us/azure/azure-app-configuration/overview。
它旨在在组件之间共享配置设置。
请注意,这不是秘密,这就是Key Vault的目的。
答案 1 :(得分:1)
Microsoft为此提供了一种指导/设计模式,可以从here中找到。
答案 2 :(得分:0)
体系结构最佳实践:您可以使用外部配置存储模式,并使用Redis缓存在多个应用程序之间共享配置,如此处所述:https://docs.microsoft.com/en-us/azure/architecture/patterns/external-configuration-store
方法是您可以从每个环境的Appsettings中获取此数据(可以在CI / CD管道中自动进行)。首次连接时,您将数据存储在RedisCache中。
对于敏感数据:使用Keyvault存储秘密/密钥/证书。