In order to get current status of timer triggered Azure web job we may use the following web jobs REST API endpoint:
https://{webAppName}.scm.azurewebsites.net/api/triggeredwebjobs/{webJobName}/history
It will return object with "runs" property which is array containing information about recent runs:
id : 202206101445293407 name : 202206101445293407 status : Running start_time : 2022-06-10T14:45:29.3564164Z end_time : 0001-01-01T00:00:00 duration : 00:00:04.0337019 output_url : https://{webAppName}.scm.azurewe.scm.azurewebsites.net/vfs/data/jobs/triggered/{webJobName}/202206101445293407/output_log.txt error_url : url : https://{webAppName}.scm.azurewe.scm.azurewebsites.net/api/triggeredwebjobs/{webJobName}/history/202206101445293407 job_name : test trigger : External -
First element of this array corresponds to the most recent run. If web job is currently running status property will be set to Running. Here is function which we can use for fetching web job status in PowerShell:
function Get-Web-Job-Status { param ( $webAppName, $webJobName ) $token = Get-AzAccessToken $headers = @{ "Authorization" = "Bearer $($token.Token)" } $userAgent = "powershell/1.0" $history = Invoke-RestMethod -Uri "https://$($webAppName).scm.azurewebsites.net/api/triggeredwebjobs/$($webJobName)/history" -Headers $headers -UserAgent $userAgent -Method GET if ($history -eq $null -or $history.runs -eq $null -or $history.runs.Length -eq 0) { return $null } return $history.runs[0].status }
It makes HTTP GET request to mentioned endpoint and gets list of runs for specified web job.
No comments:
Post a Comment