Azure 逻辑应用程序 - 如何重新启动我的操作失败?
Azure Logic App - How can I re-started my operations failed?
我的 Azure 逻辑应用程序中有很多操作失败。
我看到如果您在 Azure 门户上单击单个操作,您可以重新启动 操作:
是否可以select 所有这些失败的操作,并重新运行一起?
非常感谢大家
如果您想重新提交一个或多个失败、成功或仍然 运行 的逻辑应用程序运行,您可以从运行仪表板批量重新提交逻辑应用程序。
关于如何使用这个功能,你可以参考这篇文章:Monitor logic apps with Azure Monitor logs. Under the tile View logic app run information,你可以找到重新提交的描述。
除了从运行仪表板批量重新提交逻辑应用程序之外,您还可以使用 PowerShell 命令。看看下面的脚本,它可以自动列出失败的逻辑应用运行s、识别触发器、通过输入 ResourceGroupName 负责操作 并重新启动应用程序。 您可以根据需要更改其中的一些位。 (跳过交互并再次重新启动应用程序) 我只是展示它以供理解。
Using: Get-AzLogicApp, Get-AzLogicAppRunHistory ,
Get-AzLogicAppRunAction, Get-AzLogicAppTrigger and Start-AzLogicApp
cmdlets.
使用 Az PowerShell 6.2 模块的脚本:Az.LogicApp [将下面复制到文件,比如重启。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 a feedback or Upvote a similar Feedback : ability-to-continue-from-a-particular-point-as-in
我的 Azure 逻辑应用程序中有很多操作失败。 我看到如果您在 Azure 门户上单击单个操作,您可以重新启动 操作:
是否可以select 所有这些失败的操作,并重新运行一起? 非常感谢大家
如果您想重新提交一个或多个失败、成功或仍然 运行 的逻辑应用程序运行,您可以从运行仪表板批量重新提交逻辑应用程序。
关于如何使用这个功能,你可以参考这篇文章:Monitor logic apps with Azure Monitor logs. Under the tile View logic app run information,你可以找到重新提交的描述。
除了从运行仪表板批量重新提交逻辑应用程序之外,您还可以使用 PowerShell 命令。看看下面的脚本,它可以自动列出失败的逻辑应用运行s、识别触发器、通过输入 ResourceGroupName 负责操作 并重新启动应用程序。 您可以根据需要更改其中的一些位。 (跳过交互并再次重新启动应用程序) 我只是展示它以供理解。
Using: Get-AzLogicApp, Get-AzLogicAppRunHistory , Get-AzLogicAppRunAction, Get-AzLogicAppTrigger and Start-AzLogicApp cmdlets.
使用 Az PowerShell 6.2 模块的脚本:Az.LogicApp [将下面复制到文件,比如重启。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 a feedback or Upvote a similar Feedback : ability-to-continue-from-a-particular-point-as-in