Service Fabric 重启应用程序

Service Fabric Restart Application

我有一个在启动时从 KeyVault 读取的服务结构应用程序。当我们更改 KeyVault 值时,我们必须重新启动节点才能读取新值。这会导致同一节点上的其他应用程序关闭。

我正在尝试编写一个 PowerShell 脚本来重新启动服务结构应用程序我有以下脚本可在 1 节点集群上运行,但它不适用于多节点集群。

Restart-ServiceFabricDeployedCodePackage -ApplicationName $appName -CommandCompletionMode Verify -ServiceName $ServiceName -TimeoutSec 8000

当我有一个多节点集群时,这不起作用。我不明白为什么它不起作用。

我是不是做错了什么?

我使这个 powershell 命令起作用的最少参数数量是:

-ApplicationName -NodeName -ServiceManifestName -CodePackageName -ServicePackageActivationId

像这样: Restart-ServiceFabricDeployedCodePackage -ApplicationName fabric:/App -NodeName "Node01" -ServiceManifestName "ServicePkg" -CodePackageName "Code" -ServicePackageActivationId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

使用此命令有时会出现奇怪的错误 Did not find deployed code package for fabric:/App:Code on node Node01 但至少每次服务重新启动时都会出现。我玩过其他参数组合但没有运气。看来上面的参数是必须的。

编写在所有节点上重新启动特定服务(并且仅此服务)的通用 powershell 脚本,我会首先获取所有节点名称 运行ning Get-ServiceFabricNode 然后迭代这些名称 运行 Get-ServiceFabricDeployedCodePackage -NodeName Node01 -ApplicationName fabric:/App -ServiceManifestName ServicePkg 以便采用 ServicePackageActivationId 这是唯一动态的参数。最后用 ServicePackageActivationId 运行 Restart-ServiceFabricDeployedCodePackage