删除未使用的应用程序类型版本但保留最后几个

Removing unused app type versions but leaving last few

SF SDK 附带的 Publish-UpgradedServiceFabricApplication powershell cmdlet 有一个 $UnregisterUnusedVersions 选项,当设置为 $true 时将删除所有未使用的应用程序类型版本。这很棒,因为我不想在我的集群上堆积混乱。

但是,我真正想要的是保留最后 3 个左右的版本,这样我就可以在需要时灵活地回滚。除了重新创建该 cmdlet 之外,还有什么方法可以做到这一点吗?我猜挑战在于 cmdlet 知道哪些要保留,哪些要删除。也许使用 semver 逻辑它可以删除除最近的 3 个版本之外的所有版本?

这是白日梦吗?感觉像是我应该能够配置我的集群来做的事情。定期清除除最新 X 版本以外的所有版本。

问题是类型版本可以是任何字符串。从 SF 的角度来看,除了它被注册的 date/time 之外,没有对它的排序。您可以以适合您的应用程序的任何方式为其赋予意义。

编写脚本应该很容易。使用 FabricClient 确定哪些类型具有实例 运行 以及您要清除哪些类型。然后将该脚本变成一项服务,使其始终 运行 并定期清除旧类型。