Минимальное количество параметров, которые я заставил работать эту команду 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