服务结构重新启动应用程序

时间:2019-05-30 11:00:48

标签: azure-service-fabric azure-powershell

我有一个服务结构应用程序,该应用程序在启动时会从KeyVault读取。更改KeyVault值时,我们必须重新启动节点以使其读取新值。这将导致同一节点上的其他应用程序崩溃。

我正在尝试编写PowerShell脚本以重新启动服务结构应用程序,我使以下脚本在1节点群集上运行,但是在多节点群集上不起作用。

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

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

我做错什么了吗?

1 个答案:

答案 0 :(得分:0)

我使此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脚本,我首先要获取运行Get-ServiceFabricNode的所有节点名称,然后依次按顺序运行Get-ServiceFabricDeployedCodePackage -NodeName Node01 -ApplicationName fabric:/App -ServiceManifestName ServicePkg的这些名称取ServicePackageActivationId这是唯一的动态参数。最后使用ServicePackageActivationId运行Restart-ServiceFabricDeployedCodePackage