我们有一个包含多个应用程序和服务的Azure Service Fabric群集。其中一些服务最多包含50个参数(意味着如果在Service Fabric资源管理器中单击给定服务的“详细信息”选项卡,将会看到Key:Value
对。
我需要从50多个列表中更新这些参数中的一个。我的一位开发人员给人的印象是,可以更改其中一个参数的唯一方法是运行Powershell脚本,该脚本在脚本中包含服务的所有参数。换句话说,如果您尝试仅使用要更新的参数 运行脚本,则将擦除所有其他参数。
问题1:在脚本中不包含所有现有参数的情况下,真的没有办法只更新一个Service Fabric服务参数吗?
问题2:有没有工具或模板可帮助您构建Powershell脚本以在Service Fabric中进行此类更改?
答案 0 :(得分:3)
AFAIK无法只更新一个参数。
Service Fabric具有软件包(代码,配置,数据)的概念,您可以在其中更改一个而不更改其他软件包,在这种情况下,您只需更改Config,但是每次更改都会生成一个新版本,并且更改必须包含所有数据,因为您要替换以前的版本,而不是对其进行修改。
发布SF应用程序的“正确方法”(最佳)是使用VSTS之类的CI / CD工具来自动执行这些更改,而不是手动运行脚本,因为这很难跟踪更改,而且不久或以后,它会很小像您想要做的那样的改变变得非常痛苦。
如果这些发布是使用VSTS,Octopus,Jenkins等CD工具控制的,则只需更改值并触发新发布即可。
答案 1 :(得分:2)
将应用程序部署到集群后,可以运行Get-ServiceFabricApplication
命令连接到集群并检索当前参数的列表。
因此可以通过自定义PowerShell
脚本来实现。在部署期间,您可以收集现有参数值并与新参数组合。然后,您传递组合的参数并部署应用程序。应该不难做。
那是我能想到的一种方式。而且我不认为这有一些内置功能。是的,开发人员是对的,您始终必须提供所有参数。