我有一个http触发的Azure函数,它有一个返回json对象集合的固定响应。每10个对象刷新一次响应,其间有2秒的延迟。
当直接向函数调用这个端点时,我立即收到刷新的响应,没有缓冲-10个完整的对象,延迟2秒。
当我通过Azure的APIM调用此端点时,响应不再立即刷新。我得到了部分对象,响应似乎击中了一个缓冲区,该缓冲区只在特定时间或大小后刷新。
如何强制APIM不缓冲响应?
我能够从Microsoft获得对未记录属性的响应,以禁用响应缓冲。尽管还没有对此进行广泛的测试,但似乎奏效了。
<backend>
<forward-request buffer-response="false" />
</backend>
当您转发请求时,设置buffer-request-body="false"
,它将禁用缓冲区请求。
<forward-request timeout="time in seconds" follow-redirects="false | true" buffer-request-body="false" fail-on-error-status-code="false | true"/>
此外,不要使用<set-body>
策略。集合正文的内部文本被缓冲在内存流中,并传递给收件人。