Create Runbook Job over Azure Management API
To create a Runbook Job you can use the Azure Management API in combination with the webhook feature from Azure Automation Accounts.
Create webhook URL
Use case
To use the runbook to execute PowerShell code on a backend, you can create a Job from the client code.
Create Runbook Job via PowerShell script
$subscriptionid = "<yoursubscriptionid>"
$resourcegroupname = "<yourresourcegroupname>"
$automationaccountname = "<yourautomationaccountname>"
# Create Runbook Job
$webhookurl = "<yourwebhookurl>"
$Body = @"
{
"email":"$Email"
}
"@
$JobId = Invoke-RestMethod -Method POST -Uri $webhookurl -Body $Body
$JobId = $JobId.JobIds
$whilecounter = 1
# Get Runbook job output
$url = "https://management.azure.com/subscriptions/$Subscriptionid/resourceGroups/$resourcegroupname/providers/Microsoft.Automation/automationAccounts/$automationaccountname/jobs/$JobId/?api-version=2019-06-01"
$Response = Invoke-Restmethod -uri $url -Method GET -Headers $Headers
# print out current state of Runbook Job
$response.properties.provisioningstate
while($response.properties.provisioningstate -ne "Succeeded"){
Start-Sleep 15
$Response = Invoke-Restmethod -uri $url -Method GET -Headers $Headers
$response.properties.provisioningstate
if($whilecounter -le 10){
$whilecounter ++
}
else{
Write-Error "Get job output from Runbook failed. Exiting Script."
Exit 1
}
}
$RunbookJobOutput = Invoke-Restmethod -uri $url -Method GET -Headers $Headers