Приложение перезапуска сервисной фабрики - PullRequest
0 голосов
/ 30 мая 2019

У меня есть приложение Service Fabric, которое при запуске читает из KeyVault.Когда мы меняем значение KeyVault, мы должны перезапустить узлы, чтобы оно прочитало новое значение.Это приводит к отключению других приложений на том же узле.

Я пытаюсь написать сценарий PowerShell для перезапуска приложения Service Fabric. У меня есть следующий сценарий, работающий на кластере из 1 узла, однако он не работаетна кластере с несколькими узлами.

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

Когда у меня кластер с несколькими узлами, это не работает.Я не могу понять, почему это не сработает.

Я что-то не так делаю?

1 Ответ

1 голос
/ 30 мая 2019

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

...