API管理器:在Send-Request方法中使用重写的URI



我目前有两个资源组:A和B。资源组A包含我的APIM和一个LogicApp。然而,我还需要调用资源组B中的LogicApp。

为此,我尝试通过APIM策略手动向另一个资源组中的LogicApp发送HTTP调用。

到目前为止,我一整天都在纠结这个问题。

我当前的策略代码如下:

<policies>
<inbound>
<base />
<!-- Load query parameter -->
<set-query-parameter name="id" exists-action="override">
<value>@(context.Request.MatchedParameters["id"])</value>
</set-query-parameter>
<!-- Insert the ID into the URL by rewriting it -->
<rewrite-uri template="https://<logicAppAddress>/triggers/manual/paths/invoke/{id}?<otherPartofUrl>" copy-unmatched-params="true" />
<send-request ignore-error="false" timeout="20" response-variable-name="MasterKeyResponse" mode="new">
<!-- How do I get the re-written URL here? -->
<set-url>@( context.Request.Url.Path )</set-url>
<set-method>GET</set-method>
</send-request>
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>

";id";变量被正确地放入地址中,这很好,因为LogicApp调用CosmosDB来检索数据,然后对其进行操作

然而,由于某种原因,我似乎无法将这个重写的URL放入<send-request>函数的<set-url>部分。

如果这是一个愚蠢的问题,我真的很抱歉,我目前正在实习,这是第一次使用Azure APIM,所以这对我来说都是相对较新的。我在Stackoverflow上找不到答案。

或者有更好的方法吗?也许我忽略了什么。

非常感谢您提前提供的帮助,祝您度过愉快的一天。

已解决!对于后来遇到困难的人来说,这篇帖子帮助我解决了这个问题:

Azure APIM将请求查询字符串完全传递到后端

相关内容

  • 没有找到相关文章

最新更新