You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Azure Functions (v2)中启用GZIP压缩?Postman测试无压缩

在Azure Functions v2中启用GZIP压缩指南

我之前也碰到过类似的问题,你用Postman测试没看到GZIP压缩效果,大概率是两个核心原因:请求头没明确告知服务器接受压缩内容,或者函数应用的压缩配置未启用。下面一步步帮你解决:

第一步:修正Postman的请求头

你的请求里缺少了关键的Accept-Encoding头,服务器只会在客户端明确表示支持压缩时,才会返回GZIP格式的响应。

在Postman中添加以下请求头:

Accept-Encoding: gzip, deflate

添加后再发送请求,先看看是否有变化——如果还是没效果,就继续配置函数应用。

第二步:配置Azure Functions的压缩规则

Azure Functions v2基于Azure App Service运行,你可以通过两种方式启用压缩:

方式1:修改host.json(推荐,更精细控制)

在你的函数应用根目录下找到host.json文件,添加或更新http扩展的压缩配置:

{
  "version": "2.0",
  "extensions": {
    "http": {
      "routePrefix": "api",
      "compression": {
        "request": {
          "enabled": true,
          "mimeTypes": ["application/json", "text/plain", "text/html", "text/css", "application/javascript"]
        },
        "response": {
          "enabled": true,
          "mimeTypes": ["application/json", "text/plain", "text/html", "text/css", "application/javascript"],
          "minimumBytes": 2048
        }
      }
    }
  }
}
  • response.enabled: 开启响应压缩
  • mimeTypes: 指定需要压缩的内容类型(你的请求是application/json,已经包含在内)
  • minimumBytes: 只有当响应内容大小超过这个值(默认2048字节)时才会触发压缩,避免小内容的压缩开销

方式2:通过Azure门户启用全局压缩

如果你不想修改代码配置,可以直接在Azure后台设置:

  1. 进入你的函数应用 -> 左侧菜单选择「配置」-> 「应用设置」
  2. 添加新的应用设置:
    • 名称:WEBSITE_USE_GZIP_COMPRESSION
    • 值:true

第三步:验证压缩是否生效

完成配置后,一定要重启你的函数应用,然后用Postman重新发送请求:

  1. 确认请求头包含Accept-Encoding: gzip, deflate
  2. 查看响应头是否有Content-Encoding: gzip字段
  3. 可以对比响应的「Content-Length」,压缩后的内容会比原内容小很多(Postman会自动解压显示内容,所以你看到的还是正常的JSON,但响应头会体现压缩状态)

另外注意:如果你的响应内容太小(比如只有几行JSON),可能达不到minimumBytes的阈值,服务器不会触发压缩。可以测试返回一个较大的JSON数组(比如包含几十条数据),这样更容易看到压缩效果。

内容的提问来源于stack exchange,提问作者Tony

火山引擎 最新活动