Azure service fabric 在实时环境中更改服务结构配置

Azure service fabric 在实时环境中更改服务结构配置,azure-service-fabric,Azure Service Fabric,我已将我的服务结构服务配置为使用Azure Key Vault进行配置。如果在部署应用程序后,我更改了Key Vault中的配置,那么如何重新启动受影响的服务,使其能够获取新的配置值 或者还有其他方法吗?为您的服务提供配置的方法是使用应用程序包的“配置”部分。 由于这是版本控制的,所以可以升级它,而不需要升级服务,甚至不需要重新启动服务 更多信息和在SF上处理配置的最佳方法是使用应用程序参数文件。如果您使用VSTS之类的连续部署管道,您可以使用发布变量为您设置这些值,并部署配置文件的新版本,其余

我已将我的服务结构服务配置为使用Azure Key Vault进行配置。如果在部署应用程序后,我更改了Key Vault中的配置,那么如何重新启动受影响的服务,使其能够获取新的配置值

或者还有其他方法吗?

为您的服务提供配置的方法是使用应用程序包的“配置”部分。 由于这是版本控制的,所以可以升级它,而不需要升级服务,甚至不需要重新启动服务


更多信息和

在SF上处理配置的最佳方法是使用应用程序参数文件。如果您使用VSTS之类的连续部署管道,您可以使用发布变量为您设置这些值,并部署配置文件的新版本,其余的由SF完成

但如果您仍然需要使用密钥库:

如果您使用的是asp.net core,那么使用Azure Key Vault存储机密就像加载配置文件一样,这些值将被缓存,直到您重新加载它

您可以使用
IConfigurationRoot.Reload()
从密钥库中重新加载新值。检查一下

现在的诀窍是让它自动运行,您必须:

  • 启用关键点Vault日志记录以跟踪更改,这将在更新关键点Vault后发出日志。检查一下,然后

  • 然后:

    • 在API中创建要调用的端点并刷新机密。确保安全,避免滥用
    • 创建Azure函数来处理这些日志并触发端点
    • 或:
    • 创建消息队列以接收命令,系统读取消息以刷新设置
  • 或:
    • 制作一个定时器,在特定的时间段刷新(我不建议使用这种方法,因为您可能会使用过时的配置,但它对于快速测试场景(而不是生产环境)来说很容易且有用)

或者,如果您更喜欢定制设计的解决方案,您可以基于KeyVault创建自己的
ConfigurationProvider
,并根据您的应用程序体系结构执行缓存逻辑,而无需为其余内容操心。请参阅Asp.Net源代码。

我在某些方面使用了配置部分,但在所有配置中使用配置部分的问题是,我最终会将敏感数据(密码等)签入git,这是我希望尽可能避免的,这就是我使用KeyVault方法的原因。是否有一种使用应用程序包配置的解决方案不需要我设置并在其中保留敏感数据?描述了使用PowerShell
New ServiceFabricApplication-ApplicationParameter
保护和部署带有机密的配置的过程。这似乎是可行的,我将试一试。