使用 apigee 代理返回大负载

Dex*_*spi 3 apigee

我们正在将我们的服务迁移到 apigee,但遇到了一个问题。我们有一个返回大负载 (>55MB) 的服务,当我通过定义的 apigee 代理传递它时,它会返回:

{ 
  "fault": { 
    "faultstring" : "Body buffer overflow",
    "detail": {
      "errorcode": "protocol.http.TooBigBody"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

是否有可用于避免这种情况的 apigee 政策和/或代理设置?

而且,不,流媒体不是一种选择。我们需要复制行为,因为我们希望迁移到 apigee 对我们的客户透明。

Mik*_*ker 5

您应该尝试TargetEndpoint属性 response.streaming.enabled 。该属性将响应原封不动地传递给调用者,而无需将有效负载加载到消息缓冲区中。它不需要您使用任何类型的 HTTP 流。您将无法以任何方式编辑有效负载,但它应该可以正常通过。

禁止将非常大的负载加载到消息处理器的内存中,因为这可能会导致 Apigee Edge 出现内存问题。