You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Resources API:如何基于displayname字段实现$filter筛选?

如何通过Azure Resources API基于displayName筛选逻辑应用连接资源

首先,我得先澄清几个关键点,帮你解决这个筛选问题:

  • OData筛选语法的正确格式:Azure RM API使用OData V3语法,嵌套属性的筛选需要用**斜杠(/)**而非点号(.)。你之前用properties.displayName的写法不符合语法要求,正确的写法是properties/displayName。
  • 不需要额外的$expand参数:你提到尝试$expand=ResourceProperties或Properties失败,其实逻辑应用连接这类资源的properties字段默认就包含在Resources API的响应里,完全不需要额外展开。那些$expand参数是针对特定关联资源或扩展属性的,这里根本用不上。

正确的请求示例

假设你要筛选显示名称为My Outlook Connection的逻辑应用连接,替换占位符后的请求URL应该是这样的:

GET https://management.azure.com/subscriptions/{subscriptionId}/resources?$filter=properties/displayName eq 'My Outlook Connection'&api-version=2018-02-01

额外注意事项

  • URL编码:如果你的displayName包含空格、特殊字符(比如&、=),必须对这些字符进行URL编码。比如空格要替换成%20,上面示例中的My Outlook Connection编码后应为My%20Outlook%20Connection。
  • 模糊匹配支持:除了eq(精确匹配),你还可以用contains做模糊筛选,比如筛选名称包含"Outlook"的连接:
    $filter=contains(properties/displayName, 'Outlook')
    
  • 限定资源类型(可选):如果只想返回逻辑应用连接资源,可以在筛选条件里加上资源类型限定,避免返回其他无关资源:
    $filter=resourceType eq 'Microsoft.Web/connections' and properties/displayName eq 'My Outlook Connection'
    
  • API版本兼容性:你使用的2018-02-01版本支持该筛选语法,但如果后续遇到问题,建议尝试升级到较新的API版本(比如2021-04-01),新版本通常会有更完善的OData支持。

为什么之前的$expand尝试失败?

$expand参数在Azure RM API中主要用于展开关联资源或特定扩展属性(比如资源的identity),但properties属于资源的基础响应字段,默认就会返回,所以不需要展开。错误的$expand参数值(比如ResourceProperties)会直接导致请求无效,因为API并不支持这个选项。

内容的提问来源于stack exchange,提问作者Saravanakumar Baskaran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:11:29