我正在嘗試獲取具有特定標簽且仍處于供電/分配狀態的 VMSS 串列,然后解除分配這些 VMSS。
我還沒有看到Get-AzVmss顯示 VMSS 的分配或電源狀態的屬性。
然而,我確實發現如果我自己深入研究實體,我可以使用它們來獲得它們的功率狀態 Get-AzVmssVM
我能夠成功地在實體級別發生這種情況并關閉實體電源,但我想取消分配 VMSS 本身。
這將是 DevOps 部署管道的一部分,因此我需要確保它可靠且一致。它將作為 Azure Powershell 任務運行。
任何人都能夠幫助我在這里缺少的東西?我很想把這做一層,甚至不進入實體,但我不知道如何做到這一點(假設這是可能的)。
這是我到目前為止的代碼:
$RedTagValue = "Red"
$RGName = "test-rg"
$Resources = Get-AzVmss -ResourceGroupName $RGName | Where-Object { $_.Tags.Values -eq $RedTagValue }
foreach ($Resource in $Resources) {
$vmss = Get-AzVmssVM -ResourceGroupName $RGName -VMScaleSetName $Resource.Name
foreach ($vm in $vmss) {
$instances = Get-AzVmssVM -ResourceGroupName $RGName -VMScaleSetName $Resource.Name -InstanceId $vm.InstanceId -InstanceView
if ($instances.Statuses[1].Code -notcontains "PowerState/deallocated") {
Write-Output "Turning off" #Need some code here to output the VMSS that are being turned off and also some logic to turn them off
}
else {
Write-Output "No Machines to turn Off"
}
}
}
uj5u.com熱心網友回復:
Stop-AzVmss -ResourceGroupName $RGName -VMScaleSetName $Resource.Name -InstanceId $vm.InstanceId -Force
您需要在腳本stop-azvmss的If塊中添加上述cmdlet以停止特定的 vmss 實體。
我們沒有在腳本中對 ResourcegroupName 進行硬編碼,而是對其進行了一些更改。
這個新腳本將驗證實體狀態是否正在運行。如果實體處于運行狀態,則腳本將觸發stop-azvmsscmdlet 以解除分配這些實體。
這是修改后的 PowerShell 腳本:
$RedTagValue = "Red"
$Resources = Get-AzVmss| Where-Object { $_.Tags.Values -eq $RedTagValue }
foreach ($Resource in $Resources) {
$vmss = Get-AzVmssVM -ResourceGroupName $Resources.ResourceGroupName -VMScaleSetName $Resource.Name
foreach($vm in $vmss){
$instanceId=Get-AzVmssVM -ResourceGroupName $Resources.ResourceGroupName -VMScaleSetName $Resource.Name -InstanceId $vm.InstanceId -InstanceView
if($instanceId.Statuses[1].Code -eq 'PowerState/running'){
Write-Host "Turnning OFF","$($vm.Name)"
Stop-AzVmss -ResourceGroupName $Resources.ResourceGroupName -VMScaleSetName $Resource.Name -InstanceId $vm.InstanceId -Force
}
else {
Write-Host "$($Resource.Name)","Virtual Machines are already turned off"
}
}
}
這是示例輸出以供參考:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/381677.html
標籤:天蓝色 azure-devops 天蓝色管道 azure-powershell azure-vm-scale-set
