Azure REST API - 获取所有虚拟机的查询参数
Azure REST API - query parameters for getting all the virtual machine
我想查询订阅中的所有虚拟机,但我希望能够使用查询参数而不是代码进行过滤。
我可以获取所有虚拟机,但我想知道我是否可以过滤它们以及如何过滤它们。
我使用的不是经典的 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
是可选的,用于过滤结果。将 {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}
目前,您不能将tagname或tagvalue过滤器与其他过滤器一起使用;例如,name、location 或 resourceType.
要获取 VM 类型的所有资源,您可以使用这样的过滤器:
$filter=resourceType eq {Microsoft.Compute/virtualMachines}
更多信息:
https://msdn.microsoft.com/en-us/library/azure/dn790569.aspx
我想对@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'
我想查询订阅中的所有虚拟机,但我希望能够使用查询参数而不是代码进行过滤。
我可以获取所有虚拟机,但我想知道我是否可以过滤它们以及如何过滤它们。
我使用的不是经典的 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
是可选的,用于过滤结果。将 {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}
目前,您不能将tagname或tagvalue过滤器与其他过滤器一起使用;例如,name、location 或 resourceType.
要获取 VM 类型的所有资源,您可以使用这样的过滤器:
$filter=resourceType eq {Microsoft.Compute/virtualMachines}
更多信息:
https://msdn.microsoft.com/en-us/library/azure/dn790569.aspx
我想对@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'