Azure REST API-用于获取所有虚拟机的查询参数

Azure REST API-用于获取所有虚拟机的查询参数,rest,azure,azure-resource-manager,Rest,Azure,Azure Resource Manager,我希望查询订阅中的所有虚拟机,但我希望能够使用查询参数而不是代码进行筛选 我可以得到所有的虚拟机,但我想知道我是否可以过滤它们以及如何过滤 我使用的不是经典的REST,而是ARM。如果这是您使用的API: https://management.azure.com/subscriptions/{subscription-id}/resources?&api-version={api-version} 然后您可以像这样使用过滤器: ?$filter={filter} https://ma

我希望查询订阅中的所有虚拟机,但我希望能够使用查询参数而不是代码进行筛选

我可以得到所有的虚拟机,但我想知道我是否可以过滤它们以及如何过滤


我使用的不是经典的REST,而是ARM。

如果这是您使用的API:

https://management.azure.com/subscriptions/{subscription-id}/resources?&api-version={api-version}
然后您可以像这样使用过滤器:

?$filter={filter}
https://management.azure.com/subscriptions/{subscription-id}/resources?$filter=name eq {resourcename}&api-version={api-version}
$filter=resourceType eq {Microsoft.Compute/virtualMachines}
您的请求将如下所示:

?$filter={filter}
https://management.azure.com/subscriptions/{subscription-id}/resources?$filter=name eq {resourcename}&api-version={api-version}
$filter=resourceType eq {Microsoft.Compute/virtualMachines}
$filter是可选的,用于筛选结果。将{filter}替换为以下值之一:

$filter=tagname eq {value}
$filter=tagname eq {tagname} and tagvalue eq {tagvalue}
$filter=startswith(tagname, {tagname prefix})
$filter=resourceType eq {resourceProviderNamespace/resourceType}
$filter=name eq {resourcename}
$filter=location eq {locationname}
当前,您不能将标记名或标记值过滤器与其他过滤器一起使用;例如,名称、位置或资源类型

要获取VM类型的所有资源,可以使用如下筛选器:

?$filter={filter}
https://management.azure.com/subscriptions/{subscription-id}/resources?$filter=name eq {resourcename}&api-version={api-version}
$filter=resourceType eq {Microsoft.Compute/virtualMachines}
有关更多信息:


我想在@Aram的答案上添加一个更改。 过滤器示例必须包含单引号,如:

https://management.azure.com/subscriptions/{subscription-id}/resources?$filter=name eq 'some_name'&api-version={api-version}
因此,可能的过滤器是:

$filter=tagname eq 'value'
$filter=tagname eq 'tagname' and tagvalue eq 'tagvalue'
$filter=resourceType eq 'resourceProviderNamespace/resourceType'

您使用的是经典VMs还是Azure资源管理器?我使用的是Azure资源管理器我尝试了所有这些,但它只给了我无效的筛选器:@GabrielMonteiroNepomuceno您使用的api版本是什么?版本2014-04-01@GabrielMonteiroNepomuceno我认为这些都是老API,尝试改用1.5或1.6。如何调整此调用以拉取特定订阅的所有计算机?这会有所帮助,但如何添加资源组筛选器?