Continue series of posts about Azure web jobs with this post how to fetch log of triggered Azure web job programmatically via REST API. Previous articles from the series can be found here:
- Get status of timer triggered Azure web job via REST API in PowerShell
- Trigger web job via web jobs REST API
In order to get log of triggered Azure web job programmatically we need to use the following endpoint:
https://{webAppName}.scm.azurewebsites.net/api/triggeredwebjobs/{webJobName}/history
It returns array of runs - information about last run is stored in first element of array. One of the properties there is output_url which contains url of the log of this run. Having this information we may write the following PowerShell function which will fetch log of Azure web job run:
function Get-Web-Job-Most-Recent-Log { 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 } $log = Invoke-RestMethod -Uri $history.runs[0].output_url -Headers $headers -UserAgent $userAgent -Method GET return $log }
With this method we may fetch log of Azure web job programmatically.