У нас есть несколько виртуальных машин в нашей среде Azure с несколькими группами ресурсов.Некоторые из групп ресурсов имеют несколько виртуальных машин.Теперь мы используем URL-триггеры, которые запускают или останавливают виртуальные машины.Это работает, но когда группа ресурсов содержит несколько виртуальных машин, все виртуальные машины будут запущены или все виртуальные машины остановятся вместо той, которую вы хотите запустить / остановить.
Пробовал несколько скриптов, но он не работает или выдает ошибки.
param(
[Parameter(Mandatory=$false)]
[object]
$WebHookData
)
write output "Data WebHook $WebHookData"
#retrieve ResourceGroup
$ResourceGroupName = $WebHookData.RequestBody
write output "Data ResourceGroup $ResourceGroupName"
$Conn = Get-AutomationConnection -Name AzureRunAsConnection
Connect-AzureRmAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint
$VMs = Get-AzureRmVM -ResourceGroupName $ResourceGroupName
if(!$VMs)
{
Write-Output -InputObject 'No VMs were found in the specified Resource Group.'
}
else
{
ForEach ($VM in $VMs)
{
$StartVM = Stop-AzureRmVM -ResourceGroupName $ResourceGroupName -Name $VM.Name -Force #-ErrorAction SilentlyContinue
}
}
$message = ConvertTo-Json -Compress -InputObject ([ordered]@{
headers = @{'content-type' = 'text/plain'}
body = ''
statusCode = 200
})