Azure Api管理为单向请求设置转发请求

Azure Api管理为单向请求设置转发请求,azure,azure-api-management,Azure,Azure Api Management,我想登录以记录请求和响应,因此我在入站和出站部分放置了一个单向请求: <policies> <inbound> <send-one-way-request mode="new"> <set-url>@("example.com")</set-url> <set-method>POST</set-meth

我想登录以记录请求和响应,因此我在入站和出站部分放置了一个单向请求:

<policies>
    <inbound>                       
        <send-one-way-request mode="new">
            <set-url>@("example.com")</set-url>
            <set-method>POST</set-method>               
            <set-header name="Content-Type" exists-action="override">
                <value>application/json</value>
            </set-header>
            <set-body>@(context.Request.Body.As<string>(preserveContent: true))</set-body>
        </send-one-way-request>
    </inbound>
    <backend>
        <base />
    </backend>
    <outbound>          
        <send-one-way-request mode="new">
            <set-url>@("example.com")</set-url>
            <set-method>POST</set-method>               
            <set-header name="Content-Type" exists-action="override">
                <value>application/json</value>
            </set-header>
            <set-body>@(context.Response.Body.As<string>(preserveContent: true))</set-body>
        </send-one-way-request>
    </outbound>
</policies>
转发请求(9690毫秒)

但在出境游中,我只得到:

发送单向请求(0毫秒)

也没有提出请求。因为我使用单向请求,所以我不希望呼叫有响应,也不记得在入站部分有
转发请求
(在入站部分有单向请求的已保存跟踪呼叫中没有找到它们)

是否存在触发转发请求的其他配置

编辑:

我使用azure函数来处理这个问题。当我在子域中键入时,转发请求消失,但当我在函数名中键入时,它仍然存在。。。两个请求都指向同一azure函数

Edit2:


这让人更加困惑:当我从swagger文件发送默认主体时,请求转发并不存在。如果我重复请求或修改默认正文,则会出现…

由于发送单向请求策略对于请求处理本身是完全异步的,因此无法保证将记录来自此类请求的回复,因为在收到请求时,请求本身可能会被长时间处理,响应连同跟踪信息一起返回给客户端。因此,如果在接收到发送单向请求的响应时,主请求仍在处理中,则会记录响应,否则不会记录

在第一个示例中,记录了对入站中单向请求的回复,因为在主请求-将请求发送到后端,处理出站部分仍有很多处理要做。但当单向请求作为outbound中的最后一条语句放置时,就在发送对客户端的响应之前,对单向请求的响应将来得太晚,无法放置到跟踪中

子域中的输入错误可能会触发更长的连接时间,如果该域不主动拒绝连接,则会暂停响应,从而从跟踪中消失


这都是时间的问题。如果要确保主请求处理暂停,直到收到这些侧请求的响应,请改用发送请求策略。

我不想记录请求,请求正在向日志记录服务发送信息。我感到困惑,因为转发请求的时间被添加到了总时间中(这不是async.应该如何工作,或者是跟踪通过添加转发请求时间而被窃听?),它没有添加到总请求处理时间中。原始跟踪文件(ocp apim trace link头中提供的链接)仅包含事件发生时间的时间戳,门户UI按时间戳对事件进行排序,并计算差异以显示时间,因此可能会产生误导。感谢您的解释。如果史密斯女士能告诉我这件事,那就太好了
"One way request was successfully send to https://...."
{
    "response": {
        "status": {
            "code": 200,
            "reason": "OK"
        },
        "headers": [
            {
                "name": "Pragma",
                "value": "no-cache"
            },
            {
                "name": "Content-Length",
                "value": "2"
            },
            {
                "name": "Cache-Control",
                "value": "no-cache"
            },
            {
                "name": "Content-Type",
                "value": "application/json; charset=utf-8"
            },
            {
                "name": "Date",
                "value": "Wed, 05 Jul 2017 07:56:14 GMT"
            },
            {
                "name": "Expires",
                "value": "-1"
            },
            {
                "name": "Server",
                "value": "Microsoft-IIS/8.0"
            },
            {
                "name": "X-AspNet-Version",
                "value": "4.0.30319"
            },
            {
                "name": "X-Powered-By",
                "value": "ASP.NET"
            }
        ]
    }
}
"One way request was successfully send to https://...."