davide.ferrari
davide.ferrari

Reputation: 221

Azure Logic App - How can I re-started my operations failed?

I have many operations failed in my Azure Logic App. I see that if you click on a single operation on the Azure portal you can re-started the operation:

Logic App

Is it possible to select ALL of these failed operations, and re-run all together? Thanks a lot guys

Upvotes: 3

Views: 3764

Answers (2)

KarthikBhyresh-MT
KarthikBhyresh-MT

Reputation: 5044

Alternative to bulk resubmit Logic Apps from the Runs Dashboard, you can utilize the PowerShell commands. Take a look at the script below, which can automate listing Failed logic app runs, identify triggers, actions responsible and restart the apps by input ResourceGroupName. You can change some of those bits as per your needs. (skip the interactions and just restart apps again) I have just show it for understanding.

Using: Get-AzLogicApp, Get-AzLogicAppRunHistory , Get-AzLogicAppRunAction, Get-AzLogicAppTrigger and Start-AzLogicApp cmdlets.

Script using Az PowerShell 6.2 Module: Az.LogicApp [Copy below to file, say restart.ps1 and run] Make sure you assign $rg with your actual AzResourceGroup name

$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!"
}

enter image description here

Although my LogicApp has failed again, but you can see it was triggered in time by script

enter image description here

enter image description here

Note: If your logic app trigger expects inputs or actions (unlike recurrence or scheduled) please edit or make changes accordingly for Start-AzLogicApp command to execute successfully.

Here I am considering all logic apps are enabled (use -State Enabled) parameter for Get-AzLogicApp command if you want to run this on only currently enabled apps.

Example: Get-AzLogicApp -ResourceGroupName "rg" | where {$_.State -eq 'Enabled'}

2. You can also try advanced settings for triggers in workflow. Such as retry policy.

enter image description here

You can specify it to retry at custom intervals in case of failures due to an intermittent issues.

enter image description here

You can submit a feedback or Upvote a similar Feedback : ability-to-continue-from-a-particular-point-as-in

Refer: help topics for the Logic Apps cmdlets

Upvotes: 1

George Chen
George Chen

Reputation: 14334

If you want to resubmit one or more logic app runs that failed, succeeded, or are still running, you could bulk resubmit Logic Apps from the Runs Dashboard.

enter image description here

enter image description here

About how to use this function, you could refer to this article:Monitor logic apps with Azure Monitor logs. Under the tile View logic app run information, you could find the Resubmit description.

Upvotes: 2

Related Questions