如何获取与 Azure 规模集关联的 vmInstanceID 列表?

How do you get the list of vmInstanceIDs associated with Azure scale sets?

我查看了 azure cli 并尝试了 'azure vmss' 下我能找到的所有内容。我使用了 armclient 并尝试了不同的 REST 请求来确定列表。我在 cli 中看到几个请求要求 vmInstanceID,例如 'azure vmss restart'、'azure vmss update' 等。我希望这将导致规模集后面的 VM 的主机名,或者是否有其他获取主机名的方法。

您可以使用 CLI 获取 VMSS VM 的主机名:

C:>azure vmssvm list -g vmss -n vmss
info:    Executing command vmssvm list
data:    ResourceGroupName  Name    ProvisioningState  Location
data:    -----------------  ------  -----------------  --------
data:    VMSS               vmss_0  Succeeded          eastus
info:    vmssvm list command OK

您也可以使用 PowerShell 获取主机名和实例 ID:

PS > Get-AzureRmVmssvm -ResourceGroupName "vmss" -VMScaleSetName "vmss"

ResourceGroupName   Name Location         Sku Capacity InstanceID ProvisioningState
-----------------   ---- --------         --- -------- ---------- -----------------
VMSS              vmss_0   eastus Standard_A1                   0         Succeeded
VMSS              vmss_2   eastus Standard_A1                   2          Deleting
instance_id=$(az vmss nic list -g $resource_group --vmss-name $vmss_name --query "[?ipConfigurations[0].privateIpAddress == '$current_ipaddr'].virtualMachine.id" -o tsv | awk -F'/' '{print }')