Azure如何使用任何CLI / API在可用性集中接收分配给虚拟机的故障域ID?

时间:2018-07-09 14:18:05

标签: powershell azure azure-cli azure-availability-set

我正在尝试在可用性集中检索VM的故障域ID。 这些ID是“随机”分配给所讨论的虚拟机的,但是对于我和应用程序来说,知道虚拟机分配给哪个故障域ID至关重要。 (通过随机b / c,我们使用terraform同时生成了约21个VM)

在azure的Web门户上,如果查看可用性集,则可以检索此信息。

我尝试过的事情:

Azure CLI --expand instanceView

View Fault and Update Domains of virtual machine in Azure through Python Script页上,他们给了我一个命令示例:这给--expand属性带来了错误

az vm show -g [ResourceGroup] -n [VM_NAME] --expand instanceView

az: error: unrecognized arguments: --expand instanceView usage: az [-h] [--verbose] [--debug] [--output {json,jsonc,table,tsv}] [--query JMESPATH] {vm} ...

没有--expand instanceView的Azure CLI

这不会给出错误,但也不会给我属性。

Powershell

我也尝试过Powershell,但没有成功。

Get-AzureRmVM -ResourceGroupName $ rg.ResourceGroupName | convertTo-json

Get-AzureRmAvailabilitySet -ResourceGroupName $ rg.ResourceGroupName | convertTo-json


有人知道如何检索域故障ID吗?

2 个答案:

答案 0 :(得分:1)

AFAIK,您无法获取故障域ID,这些域是由MS分配的,最多只能获取platformFaultDomainCount

故障域定义了共享公共电源和网络交换机的虚拟机组。

默认情况下,在可用性集中配置的虚拟机在Resource Manager部署的多达三个故障域(对于Classic的两个故障域)之间是分开的。

有关可用性集和故障域的更多详细信息,请参阅:

答案 1 :(得分:1)

可以使用REST API:

https://management.azure.com/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Compute/virtualMachines/%s/instanceView?api-version=2017-03-30

因此,我只是编写了一个REST API客户端来检索我的信息,我不知道为什么它在CLI客户端中不起作用((可能是一个错误?)