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

Azure Resource Graph API skipToken分页失效,重复返回相同结果

解决Azure Resource Graph API分页失效(重复返回相同结果)的问题

首先明确:你调用的是Azure Resource Graph API(域名management.azure.com),而非Microsoft Graph API,两者分页机制存在差异,以下针对你的问题给出排查和修复步骤:

核心排查点

  • 请求体必须完全一致:Resource Graph的skipToken与当前查询完全绑定,后续分页请求的查询语句(包括排序、筛选、聚合逻辑等)必须和第一次请求完全相同——哪怕多一个空格、调整了大小写,都会导致skipToken失效,直接返回初始结果。
  • $top参数需正确传递:$top是URL查询参数,不能放在请求体中,且Resource Graph的$top最大值为1000(默认返回条数也是1000)。若设置$top=5仍返回1000条,说明该参数未被API正确识别,大概率是ADF中参数拼接错误或放置位置不对。

ADF中的具体修复操作

  1. 正确提取skipToken:第一次Web活动的响应里,skipToken是顶级字段(响应结构示例:{"data": [...], "skipToken": "xxx"}),用ADF动态内容提取时,确保无额外转义或引号,示例:
    @activity('FirstResourceGraphCall').output.skipToken
    
  2. 正确拼接分页URL:后续Web活动的URL需将$skipToken和$top作为查询参数拼接,示例:
    https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2022-10-01&$top=5&$skipToken=@{activity('FirstResourceGraphCall').output.skipToken}
    
  3. 锁定请求体内容:分页请求的请求体必须和第一次完全复用,不能做任何修改,包括查询语句的格式调整。比如第一次请求体是:
    {
      "query": "Resources | where type =~ 'Microsoft.Compute/virtualMachines' | project name, location"
    }
    
    后续分页请求必须原样使用该请求体。

手动测试验证

若手动硬编码skipToken仍无效,用Postman做如下验证:

  1. 发送第一次请求,获取skipToken。
  2. 复制第一次请求的完整请求体,在URL中添加$skipToken和$top参数后发送第二次请求。
  3. 若Postman能正常返回下一页,说明问题出在ADF的参数传递或请求体配置;若Postman也返回相同结果,检查skipToken是否复制正确,或确认查询结果是否确实只有当前页的内容(比如总结果不足1000条)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 13:27:36