Service Fabric应用程序部署超时



我们最近将我们的开发Service Fabric集群从7.1版本升级到了最新、最棒的版本(8.2(,现在我们的许多微服务应用程序都无法部署。它们在Azure DevOps中的"部署服务结构应用程序"步骤中失败,此时PowerShell脚本正试图创建应用程序,错误为"System"。超时异常"。至此,脚本已成功地将应用程序复制到映像存储中,并将其注册到Service Fabric中。

默认情况下,"Publish NewServiceFabricApplication.ps1"PowerShell脚本的超时时间为两分钟,我曾尝试通过-TimeoutSec参数提供更高的值来增加超时时间,但它似乎只是忽略了这一点。当我尝试手动部署应用程序(使用NewServiceFabricApplication PowerShell cmdlet(时,部署成功,但只需要三分钟多。

有人遇到过这个问题吗?这是一个已知的问题吗?

最终,我"破解"了"Utilities.ps1"文件(该文件随Microsoft Azure Service Fabric SDK提供(,以使其遵守我提供的增加的超时值。但我打算向MS提出这个问题,因为它似乎是一个bug。

以下是相关函数NewServiceFabricApplicationAction(Utilities.ps1文件的第741行(,其中包括我的更改(添加星号以强调(:

function New-ServiceFabricApplicationAction
{
Param (
[string]
$ApplicationName,
[string]
$ApplicationTypeName,
[string]
$ApplicationTypeVersion,
[hashtable]
$ApplicationParameter
)
$global:operationId = $SF_Operations.CreateNewApplication
$createAction = {
New-ServiceFabricApplication -ApplicationName 
$ApplicationName -ApplicationTypeName
$ApplicationTypeName -ApplicationTypeVersion $ApplicationTypeVersion
***-TimeoutSec 600*** -ApplicationParameter $ApplicationParameter
}
$exceptionRetryEvaluator = {
param($ex)
# If app already created, don't retry
if ($ex.GetType().FullName -eq "System.Fabric.FabricElementAlreadyExistsException")
{
return $false
}
return $true
}
try
{
Invoke-ActionWithDefaultRetries -Action $createAction `
-RetryMessage (Get-VstsLocString -Key SFSDK_RetryingCreateApplication) `
-ExceptionRetryEvaluator $exceptionRetryEvaluator `
-RetryableExceptions @("System.Fabric.FabricTransientException", "System.Fabric.FabricElementAlreadyExistsException", "System.TimeoutException")
}
catch [System.TimeoutException]
{
Write-Host (Get-VstsLocString -Key SFSDK_CreateApplicationFailed)
# print application health status if create did not succeed
Trace-ServiceFabricApplicationHealth -ApplicationName $ApplicationName
throw
}
}

最新更新