使用 Serverless 框架或 CloudFormation 在 API Gateway 中启用数据压缩

问题描述 投票:0回答:1

按照无服务器框架文档,我将其添加到我的

serverless.yaml

provider:
  name: aws
  apiGateway:
    minimumCompressionSize: 1

因此,我有任何给定的端点进行测试,它返回一个大约 500 个字符的 JSON 字符串,根据我上面的配置,该字符串应该返回压缩的,但正如我们可以通过 cURL 验证的那样,它没有压缩。

functions:
  v1-http-dummy:
    handler: app/v1/http/dummy.handler
    events:
      - httpApi:
          path: /v1/dummy
          method: GET

检查:

$ curl -X POST -sILH 'Accept-Encoding: *' https://example.com/v1/dummy
HTTP/2 404 
date: Thu, 16 Nov 2023 10:19:13 GMT
content-type: application/json
content-length: 23
apigw-requestid: OfHpQg_xIAMEJwA=

无任何压缩迹象。

我知道 REST API 和 HTTP API 之间存在差异;我的项目使用 HTTP API。我的问题是,如何使用 Serverless 框架在 API Gateway 上启用压缩?

也可以通过 CloudFormation 实现。

我尝试了在 StackOverflow 上找到的答案,但它不再起作用,这就是我再次询问的原因。因此,这不应被视为重复问题,因为旧的解决方案不再有效。

amazon-web-services aws-api-gateway serverless-framework
1个回答
0
投票

您需要明确指定您想要接收压缩响应:https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-receive-response-with-compressed-payload.html

另请注意,如果您想对所有请求/响应启用压缩,可以将该值设置为

0
。参考:https://docs.aws.amazon.com/apigateway/latest/api/API_RestApi.html#minimumCompressionSize

© www.soinside.com 2019 - 2024. All rights reserved.