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

使用backend-id时添加send-request导致Backend URL未生成的问题求助

问题解决:Azure APIM中send-request结合backend-id报错的处理

问题核心是send-request策略不会自动继承set-backend-service配置的后端服务地址,需要手动在send-request内部指定完整的后端请求URL。

解决步骤

  • 利用APIM内置变量context.BackendServiceUrl获取通过backend-id绑定的后端基础URL
  • 在send-request的url属性中拼接rewrite-uri指定的路径,形成完整请求地址

修改后的可用策略

<inbound>
    <base />
    <set-backend-service backend-id="testbackend" />  
    <rewrite-uri template="/test" />
    <!-- 拼接后端基础URL与请求路径 -->
    <send-request mode="copy" response-variable-name="BackendResponse" url="{{context.BackendServiceUrl}}/test">
        <set-method>POST</set-method>
    </send-request>
</inbound>

如果需要动态路径,也可以先将路径存入变量再拼接:

<inbound>
    <base />
    <set-backend-service backend-id="testbackend" />  
    <set-variable name="targetPath" value="/test" />
    <rewrite-uri template="/test" />
    <send-request mode="copy" response-variable-name="BackendResponse" url="{{context.BackendServiceUrl}}{{targetPath}}">
        <set-method>POST</set-method>
    </send-request>
</inbound>

原理说明

set-backend-service仅为APIM默认的后端请求流程设置地址,而send-request属于独立发起的自定义请求,APIM不会自动将后端地址传递给它,必须显式指定url参数。通过context.BackendServiceUrl可以直接获取backend-id对应的后端基础URL,加上业务需要的路径后,即可正常发起请求并将响应存入指定变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 00:38:38