Create Runbook Job via 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. This makes shure to
Use case
To use the runbook to execute PowerShell code on a backend, you can create a Job from the client code with corresponding input values. Even if you want to get some information back from the Runbook, you can wait on the client side code for the response of the Runbook Job.
Create webhook URL
Authentication to Azure Management API
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