答案 0 :(得分:1)
如果您要重新提交失败,成功或仍在运行的一个或多个逻辑应用程序运行,则可以从运行仪表板批量重新提交逻辑应用程序。
关于如何使用此功能,您可以参考本文:Monitor logic apps with Azure Monitor logs。在图块View logic app run information下,您可以找到重新提交说明。
答案 1 :(得分:1)
作为从运行仪表板批量重新提交逻辑应用程序的替代方法,您可以使用 PowerShell 命令。看看下面的脚本,它可以自动列出失败的逻辑应用程序运行、识别触发器、动作负责和重新启动应用程序 通过输入 ResourceGroupName。 您可以根据需要更改其中的一些部分。 (跳过交互并重新启动应用程序)我只是为了理解而展示它。
<块引用>使用: Get-AzLogicApp、Get-AzLogicAppRunHistory、 Get-AzLogicAppRunAction、Get-AzLogicAppTrigger 和 Start-AzLogicApp cmdlet。
使用 Az PowerShell 6.2 模块的脚本:Az.LogicApp [复制下面的文件,说 restart.ps1 并运行] 确保将 $rg
分配给实际的 AzResourceGroup
姓名
$rg = "MyResourceGrp"
#get logic apps
$logicapps = Get-AzLogicApp -ResourceGroupName $rg
Write-Host "logicapps:" -ForegroundColor "Yellow"
write-output $logicapps.Name
#list all logicapp runs failed
$failedruns = @(foreach($name in $logicapps.Name){
Get-AzLogicAppRunHistory -ResourceGroupName $rg -Name $name | Where {$_.Status -eq 'Failed'}
})
Write-Host "failedruns:" -ForegroundColor "Yellow"
Write-Output $failedruns.Name | select -Unique
Write-Host "failedruns: LogicAppNames" -ForegroundColor "Yellow"
Write-Output $failedruns.Workflow.Name | select -Unique
#list all logicappRunsActions failed
foreach($i in $logicapps){
foreach($y in $failedruns){
if ($i.Version -eq $y.Workflow.Name) {
$resultsB = Get-AzLogicAppRunAction -ResourceGroupName $rg -Name $i.Name -RunName $y.Name -FollowNextPageLink | Where {$_.Status -eq 'Failed'}
}
}
}
foreach($item in $resultsB){
Write-Host "Action:" $item.Name " " -NoNewline "Time:" $item.EndTime
Write-Output " "
}
#get logicapp triggers
foreach($ii in $logicapps){
foreach($yy in $failedruns){
if ($ii.Version -eq $yy.Workflow.Name) {
$triggers = Get-AzLogicAppTrigger -ResourceGroupName $rg -Name $ii.Name
}
}
}
Write-Host "triggers:" -ForegroundColor "Yellow"
Write-Output $triggers.Name
#start logic apps with triggers
Write-Host "Starting logic apps....." -ForegroundColor "green"
foreach($p in $logicapps){
foreach($tri in $triggers){
if ($p.Version -eq $triggers.Workflow.Name) {
Start-AzLogicApp -ResourceGroupName $rg -Name $p.Name -TriggerName $tri.Name
}
}
}
$verify = Read-Host "Verify ruuning app? y or n"
if ($verify -eq 'y') {
$running = @(foreach($name2 in $logicapps.Name){
Get-AzLogicAppRunHistory -ResourceGroupName $rg -Name $name2 | Where {$_.Status -eq 'Running' -or $_.Status -eq 'Waiting'}
})
Write-Host $running
}
else {
Write-Host "Bye!"
}
虽然我的LogicApp
又失败了,但是可以看到是脚本及时触发的
注意:如果您的逻辑应用触发器需要输入或操作(与重复或计划不同),请进行相应的编辑或更改,以成功执行 Start-AzLogicApp
命令。
如果您只想在当前启用的应用程序上运行此命令,我在这里考虑启用所有逻辑应用程序(使用 -State Enabled
)参数 Get-AzLogicApp
命令。
示例:Get-AzLogicApp -ResourceGroupName "rg" | where {$_.State -eq 'Enabled'}
2.您还可以尝试在工作流中设置触发器的高级设置。例如重试策略。
您可以指定它以自定义时间间隔重试,以防因间歇性问题而失败。
您可以submit一个反馈或Upvote一个类似的Feedback : ability-to-continue-from-a-particular-point-as-in