Ответ веб-перехватчика учетной записи службы автоматизации Azure
Я пытаюсь выполнить сценарий PowerShell с помощью веб-перехватчика в учетной записи автоматизации Azure. Мой сценарий Powershell выполнит отключение виртуальной машины через веб-перехватчик. Я получаю ответ как идентификатор задания, поэтому мое требование состоит в том, чтобы получить ответ, поскольку данное VmName $VmName должно быть напечатано и с сообщением об успешной остановке вместе с идентификатором задания. Как получить этот ответ с помощью скрипта, куда я должен добавить, чтобы получить ответ.
Param
(
[Parameter (Mandatory = $false)]
[object] $WebhookData
)
if ($WebhookData) {
$WebhookName = $WebHookData.WebhookName
$WebhookHeaders = $WebhookData.RequestHeader
$WebhookBody = $WebhookData.RequestBody
$input = (ConvertFrom-Json -InputObject $WebhookData.RequestBody)
}
# Login to Automation Account
$connectionName = 'AzureRunAsConnection'
try
{
# Get the connection "AzureRunAsConnection "
$servicePrincipalConnection= Get-AutomationConnection -Name $connectionName
"Logging in to Azure..."
#Add-AzureRMAccount
Connect-AzAccount -ServicePrincipal -TenantId $servicePrincipalConnection.TenantId -ApplicationId $servicePrincipalConnection.ApplicationId -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint -WarningAction Ignore
}
catch {
if (!$servicePrincipalConnection)
{
$ErrorMessage = "Connection $connectionName not found."
throw $ErrorMessage
} else{
Write-Error -Message $_.Exception
throw $_.Exception
}
}
$ResourceGroupName = $input.ResourceGroupName
$VmName = $input.VmName
Stop-AzVM -Name $VmName -ResourceGroupName $ResourceGroupName -Force
Write-Output "VM $VmName in Resource Group $ResourceGroupName was stopped Successfully"
1 ответ
если вы пытаетесь проверить статус виртуальной машины внутри скрипта, вы можете проверить ниже
$Stop = Stop-AzVM -Name $VmName -ResourceGroupName $ResourceGroupName -Force
if(($Stop.Status) -eq "Succeeded"){
Write-Output "VM $VmName in Resource Group $ResourceGroupName was stopped Successfully"
}
# Or can check VM status seperatly by using
Get-AzVM $VmName -Status |Select-Object Name,PowerState