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

li-*_*raz 0 rest azure azure-resource-manager

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

我能够获得所有虚拟机,但我想知道我是否可以过滤它们以及如何过滤它们.

我没有使用经典的REST而是ARM.

Ara*_*ram 11

如果这是您使用的API:

https://management.azure.com/subscriptions/{subscription-id}/resources?&api-version={api-version}
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样使用过滤器:

?$filter={filter}
Run Code Online (Sandbox Code Playgroud)

您的请求将如下所示:

https://management.azure.com/subscriptions/{subscription-id}/resources?$filter=name eq {resourcename}&api-version={api-version}
Run Code Online (Sandbox Code Playgroud)

$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}
Run Code Online (Sandbox Code Playgroud)

目前,您无法tagnametagvalue过滤器与其他过滤器一起使用; 例如,名称,位置resourceType.

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

$filter=resourceType eq {Microsoft.Compute/virtualMachines}
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息:

https://msdn.microsoft.com/en-us/library/azure/dn790569.aspx