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

Azure how to receive the assigned fault domain id of a virtual machine in an availability set using any CLI/API?

我正在尝试检索可用性集中 VM 的故障域 ID。 这些 ID 被分配 "by random" 给有问题的虚拟机,但对我和应用程序来说,了解虚拟机分配给哪个故障域 ID 很重要。 (通过随机 b/c 我们使用 terraform 同时生成 ~21 个虚拟机)

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

我尝试过的:

Azure CLI --展开实例视图

在页面 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 但没有成功。

获取-AzureRmVM -ResourceGroupName $rg.ResourceGroupName | convertTo-json

获取-AzureRmAvailabilitySet -ResourceGroupName $rg.ResourceGroupName | convertTo-json


有谁知道如何检索域错误 ID?

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

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

默认情况下,在您的可用性集中配置的虚拟机在 Resource Manager 部署中最多分为三个故障域(Classic 有两个故障域)。

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

可以通过使用 REST API:

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

所以,我刚刚写了一个 REST API 客户端来检索我的信息,我不知道为什么它在 CLI 客户端中不起作用,(也许是一个错误?)