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