【发布时间】:2023-03-08 11:54:01
【问题描述】:
最近我们尝试将现有的 v1 azure 应用程序迁移到 v2 和节点版本 10+。当我们这样做时,我们发现在函数应用程序上调用 APIS 的 UI 应用程序运行缓慢,有时它们会杀死浏览器。当我们调查发现新版本功能应用程序的所有响应大小都增加了 2.5 倍。对于小的响应,应用程序运行良好,但是当它返回一个像 10MB+ 这样的大负载时,应用程序开始冻结。在某些情况下,它达到了 100MB+。之所以这么大,是因为从新函数返回的 JSON 是用空格和制表符格式化的。这促成了额外的空间。尝试使用 context.res.isRaw = true (在文档中“表示响应的格式被跳过。”)并将内容类型设置为 JSON 也设置为文本,但它没有任何区别。你们知道为什么它会以这种方式表现以及任何解决方案吗? 例子: v1 曾经以这种方式发送 json:
{'key_1':'value_1',......,'key_n':'value_n'}
现在 v2 发回相同的 JSON(点也代表空白):
{
....'key_1': 'value_1',
..........,
..........
'key_n': 'value_n'
}
有人遇到过类似的问题吗? 我还注意到它在内容类型的末尾添加了字符集。这有什么区别吗? V1:内容类型:application/json; V2:内容类型:application/json;字符集=utf-8
【问题讨论】:
-
压缩 API 的响应。
-
是否有内置机制来压缩函数应用的响应。还是我们需要使用外部工具?
标签: javascript node.js azure-functions azure-functions-core-tools