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

Azure资源图查询报错:获取已分配与已弃用策略失败

问题排查与修正方案

原查询错误原因

你的查询触发UnexpectedQueryExecutionError,大概率是直接使用join处理大量策略状态数据时,超出了Azure Resource Graph查询引擎的执行限制;另外原查询中HTML转义的引号",实际执行时需替换为普通单/双引号。

修正后的查询方案

方案1:用lookup替代join(适配资源关联场景)

lookup在Resource Graph中处理跨资源类型关联时更高效,能降低执行压力:

policyresources 
| where type =~ 'microsoft.policyinsights/policystates'
| extend
    policyDefinitionId = tostring(properties.policyDefinitionId),
    policyAssignmentScope = tostring(properties.policyAssignmentScope),
    policyAssignmentName = tostring(properties.policyAssignmentName)
| lookup kind=leftouter (
    policyresources
    | where type =~ 'microsoft.authorization/policydefinitions'
    | extend 
        description = tostring(properties.description),
        displayName = tostring(properties.displayName)
    | where displayName contains 'deprecated'
    | project id, description, displayName
) on $left.policyDefinitionId == $right.id
| project policyDefinitionId, policyAssignmentScope, policyAssignmentName, displayName, description

方案2:用let拆分查询逻辑(提升可读性与效率)

先预筛选已弃用的策略集合,再关联策略状态数据:

// 预定义所有已弃用的策略定义
let deprecatedPolicies = policyresources
| where type =~ 'microsoft.authorization/policydefinitions'
| extend 
    policyDisplayName = tostring(properties.displayName),
    policyDescription = tostring(properties.description)
| where policyDisplayName contains 'deprecated'
| project policyDefinitionId = id, policyDisplayName, policyDescription;

// 关联策略分配状态数据
policyresources
| where type =~ 'microsoft.policyinsights/policystates'
| extend
    policyDefinitionId = tostring(properties.policyDefinitionId),
    policyAssignmentScope = tostring(properties.policyAssignmentScope),
    policyAssignmentName = tostring(properties.policyAssignmentName)
| join kind=inner deprecatedPolicies on policyDefinitionId
| project policyDefinitionId, policyAssignmentScope, policyAssignmentName, policyDisplayName, policyDescription

补充说明

  • 若只需获取已被分配的弃用策略,使用join kind=inner比leftouter更高效,可自动过滤无匹配的记录。
  • 执行前确保查询中的引号为普通单/双引号,避免HTML转义字符导致的语法问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 22:57:14