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

Azure APIM中如何阻止OperationNotFound错误记录至AI?

解决Azure APIM中不存在端点的错误日志问题

方法1:通过“通配符API+操作”拦截未匹配请求

由于OperationNotFound错误在APIM匹配现有API/操作阶段就会触发,常规入站/错误策略无法捕获,最可靠的方式是创建通配符API拦截这类请求:

  1. 在APIM中新建API,设置URL后缀为/*(或更精准的前缀如/academy/*,匹配扫描覆盖的路径范围)
  2. 为该API添加通配符操作,URL模板设为/*,仅启用GET方法(匹配扫描工具的请求类型)
  3. 在该操作的入站策略中直接返回404,并跳过后续日志与追踪:
    <policies>
      <inbound>
        <return-response>
          <set-status code="404" reason="Not Found" />
          <set-header name="Content-Type" exists-action="override">
            <value>application/json</value>
          </set-header>
          <set-body>{"error": "Resource not found"}</set-body>
        </return-response>
        <skip>
          <log>true</log>
          <trace>true</trace>
        </skip>
      </inbound>
      <backend>
        <forward-request />
      </backend>
      <outbound>
        <base />
      </outbound>
      <on-error>
        <base />
      </on-error>
    </policies>
    
  4. 调整API优先级,确保业务API(如/academy/getInfo所属API)排在通配符API之前,避免拦截合法请求

方法2:在Application Insights中过滤错误日志

若无需修改APIM策略,可直接在AI层面排除此类错误:

  1. 进入目标Application Insights资源的日志页面
  2. 在告警规则的日志查询中添加过滤条件:
    | where OperationName != "OperationNotFound" or Message !contains "Unable to match incoming request to an operation"
    
    该条件会排除触发告警的目标错误,同时不影响其他合法错误的告警与日志

方法3:全局策略on-error阶段捕获处理

尝试在全局级别的on-error策略中捕获OperationNotFound错误,阻止其写入AI:

<policies>
  <inbound>
    <base />
  </inbound>
  <backend>
    <base />
  </backend>
  <outbound>
    <base />
  </outbound>
  <on-error>
    <choose>
      <when condition="@(context.LastError.Reason == "OperationNotFound")">
        <return-response>
          <set-status code="404" reason="Not Found" />
          <set-body>{"error": "Requested resource does not exist"}</set-body>
        </return-response>
        <log-to-application-insights>
          <severity>Information</severity>
          <message>Ignored OperationNotFound for request @(context.Request.Url.ToString())</message>
          <skip-error-logging>true</skip-error-logging>
        </log-to-application-insights>
      </when>
      <otherwise>
        <base />
      </otherwise>
    </choose>
  </on-error>
</policies>

注意:此方法需验证APIM错误触发顺序,部分场景下需结合通配符API才能生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 05:22:34