Azure service fabric Azure服务结构从Visual Studio发布升级-PowerShell脚本错误
我正在尝试将Service Fabric应用程序从Visual Studio 2017发布到我们的Azure Service Fabric群集。9月中旬,我成功地用相同的PowerShell脚本将同一个应用程序升级到了SFC,没有任何问题。我现在正试图升级到下一个版本号,突然出现了这个错误 我在发布过程中遇到以下错误,与Powershell相关Azure service fabric Azure服务结构从Visual Studio发布升级-PowerShell脚本错误,azure-service-fabric,Azure Service Fabric,我正在尝试将Service Fabric应用程序从Visual Studio 2017发布到我们的Azure Service Fabric群集。9月中旬,我成功地用相同的PowerShell脚本将同一个应用程序升级到了SFC,没有任何问题。我现在正试图升级到下一个版本号,突然出现了这个错误 我在发布过程中遇到以下错误,与Powershell相关 2>Started executing script 'Deploy-FabricApplication.ps1'. 2>powershel
2>Started executing script 'Deploy-FabricApplication.ps1'.
2>powershell -NonInteractive -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -Command ". 'C:\Users\pj\Source\Workspaces\VDevelopment\trunk\Services\Sources\src\For.Application.ServiceFabric.Sources\Scripts\Deploy-FabricApplication.ps1' -ApplicationPackagePath 'C:\Users\pj\Source\Workspaces\VDevelopment\trunk\Services\Sources\src\For.Application.ServiceFabric.Sources\pkg\Debug' -PublishProfileFile 'C:\Users\pj\Source\Workspaces\VDevelopment\trunk\Services\Sources\src\For.Application.ServiceFabric.Sources\PublishProfiles\Cloud.xml' -DeployOnly:$false -ApplicationParameter:@{} -UnregisterUnusedApplicationVersionsAfterUpgrade $false -OverrideUpgradeBehavior 'None' -OverwriteBehavior 'SameAppTypeAndVersion' -SkipPackageValidation:$false -ErrorAction Stop"
2>Copying application package to image store...
2>Upload to Image Store succeeded
2>Registering application type...
2>Register application type started. Use Get-ServiceFabricApplicationType to query for status.
2>Running Image Builder process ...
2>Application package is registered.
2>Start upgrading application...
2>aka.ms/upgrade-defaultservices
2>Start-ServiceFabricApplicationUpgrade : aka.ms/upgrade-defaultservices
2>At C:\Program Files\Microsoft SDKs\Service
2>Fabric\Tools\PSModule\ServiceFabricSDK\Publish-UpgradedServiceFabricApplication.ps1:317 char:13
2>+ Start-ServiceFabricApplicationUpgrade @UpgradeParameters
2>+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2> + CategoryInfo : InvalidOperation: (Microsoft.Servi...usterConnection:ClusterConnection) [Start-ServiceFa
2> bricApplicationUpgrade], FabricException
2> + FullyQualifiedErrorId : UpgradeApplicationErrorId,Microsoft.ServiceFabric.Powershell.StartApplicationUpgrade
2>
2>Finished executing script 'Deploy-FabricApplication.ps1'.
2>Time elapsed: 00:07:39.0407526
2>The PowerShell script failed to execute.
========== Build: 1 succeeded, 0 failed, 10 up-to-date, 0 skipped ==========
========== Publish: 0 succeeded, 1 failed, 0 skipped ==========
知道这是怎么回事吗?同样,当我上一次在9月份发布这篇文章时,使用了相同的脚本,没有任何问题,而且除了升级清单版本以将其作为新的升级版本推出之外,我没有对解决方案进行任何更改
我注意到这个S/O线程:并看到用户的错误与此类似,但答案不适用于我的问题,因为提供的答案中的所有三个步骤都肯定包含在我的powershell部署脚本中
如果有帮助,我可以添加部署脚本,但会等待请求,因为它很长,我只想在有人认为需要诊断时在这里发布它。您遇到此错误,因为您正在更改默认服务中不允许的某些参数 错误日志中显示的链接解释了这一点 应用程序清单中定义的某些默认服务参数 也可以作为应用程序升级的一部分进行升级 仅支持通过更改的服务参数 更新ServiceFabricsService可以作为升级的一部分进行更改。这个 应用程序升级期间更改默认服务的行为如下 如下:
MinReplicaSize
和TargetReplicaSize
更改为1,当SF验证您的升级服务状态时,它识别了差异并阻止升级继续,如果您已将群集设置EnableDefaultServicesUpgrade
设置为true
,它将继续并覆盖默认值
当您删除服务并再次添加时,如果您更改或拼错了名称,则会出现第3项,SF默认设置将阻止删除此服务
关于您找到的解决方案(删除并重新创建),这并不理想,
在生产环境中运行有状态服务的情况下,应用这些服务会有风险,因为您必须备份状态、重新部署服务并恢复备份。在某些情况下,根据这些更改的内容,您将无法恢复备份,因为它们必须与原始服务定义相匹配(分区类型、编号和子分区打开)。您还将失去滚动更新的好处,如果这些备份很大,您的服务可能会停止一段时间。您遇到此错误,因为您正在更改默认服务中不允许的某些参数 错误日志中显示的链接解释了这一点 应用程序清单中定义的某些默认服务参数 也可以作为应用程序升级的一部分进行升级 仅支持通过更改的服务参数 更新ServiceFabricsService可以作为升级的一部分进行更改 应用程序升级期间更改默认服务的行为如下 如下:
MinReplicaSize
和TargetReplicaSize
更改为1,当SF验证要升级的服务状态时,如果您设置了群集设置启用默认服务,它会识别差异并阻止升级继续pgrade
到true
它将继续并覆盖默认值
当您删除服务并再次添加时,如果您更改或拼错了名称,则会出现第3项,SF默认设置将阻止