【发布时间】:2018-09-24 21:11:08
【问题描述】:
我们有一个包含多个应用和服务的 Azure Service Fabric 集群。一些服务包含多达 50 个参数(表示在 Service Fabric Explorer 中单击给定服务的详细信息选项卡时会看到的 Key:Value 对)。
我需要从 50 多个参数列表中更新其中一个。我的一位开发人员的印象是,您可以更改其中一个参数的唯一方法是运行一个 Powershell 脚本,该脚本包含脚本中的所有服务参数。换句话说,如果您尝试使用仅要更新的参数运行脚本,您将删除所有其他参数。
问题 1:是否真的无法在脚本中不包含所有现有参数的情况下仅更新一个 Service Fabric 服务参数?
问题 2:是否有任何工具/模板可帮助您构建 Powershell 脚本以在 Service Fabric 中进行此类更改?
【问题讨论】:
-
你说的是来自
Settings.xml的参数吗? -
@OlegKarasik 不,不是
PackageRoot/Config下的settings.xml。在 Visual Studio 中构建 Service Fabric 解决方案时,该解决方案的 Service Fabric 部分下将有一个名为ApplicationParameters的文件夹。在此文件夹中将有许多 XML 文件 - 当您第一次构建解决方案时,它默认包含 3 个称为Cloud.xml、Local.1Node.xml和Local.5Node.xml。这些文件用于输入和存储与您的应用程序相关的键:值对。您使用哪个 xml 文件取决于您的部署方式(到云,或到 SFC 的本地实例)。 -
很遗憾,如果不执行应用程序升级或远程/创建新应用程序,就无法更新参数。如果您使用的是 Azure DevOps (VSTS),则有一组与发布配置文件集成的操作(
Cloud.xml等),并且可以在实际部署之前自动增加应用程序的版本(如 @DiegoMendes 所述)。如果由于某种原因该过程应该通过 PowerShell 脚本手动完成,那么我建议您尝试通过@SteppingRazor 解决方案。