【问题标题】:AWS Lambda / API Gateway Not passing through encodingAWS Lambda / API Gateway 不通过编码
【发布时间】:2019-06-19 10:04:09
【问题描述】:

我正在尝试将一个正常工作的 Lumen API 服务转换为 AWS,但我很难让外部 REST API 服务工作。该服务返回压缩的数据,但这一事实并未正确地传递回浏览器中的应用程序 (Vue)。我尝试在响应中添加标题,如下所示,但它仍然无法正常工作。我可以在浏览器控制台的响应中看到标题,但浏览器仍然没有解释它,所以数据看起来仍然像垃圾。关于如何进行这项工作的任何线索?

var req = require('request');
exports.handler = function (event, context, callback) {
    const params = {
        url: 'http://api.service',
        headers: { 'Authorization': 'code',
                'Accept-Encoding': 'gzip,deflate',
                'Content-Type': 'application/json' },
        json: {'criteria': {
                    'checkInDate': '2019-10-22',
                    'checkOutDate': '2019-10-25',
                    'additional': {'minimumStarRating': 0},
                    'cityId': 11774}}
    };
    req.post(params, function(err, res, body) {
        if(err){
            callback(err, null);
        } else{
            callback(null, {
                "statusCode": 200,
                "headers": {
                    "Content-Type": "application/json",
                    "Content-Encoding": "gzip"
                },
                "body": body
            });
        }
    });
};

【问题讨论】:

  • 你检查过这些答案吗? stackoverflow.com/questions/39453097/…
  • 是的,但我的情况略有不同,因为我不是试图让网关来压缩数据。它已经从 Lambda 调用的 API 压缩而来。似乎 Lambda 实际上并未设置为处理获取压缩数据,因此它与 API 网关之间的接口没有处理它的工具。

标签: amazon-web-services aws-lambda aws-api-gateway


【解决方案1】:

如果您看到所有乱码字符,很可能您还没有让 API Gateway 将您的 Lambda 答案视为二进制(因为它是从您的 lambda 压缩的)

看一下文档

https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-payload-encodings-configure-with-console.html

还有这篇文章

不幸的是,API Gateway 目前没有使用 gzip。如果 我们正在使用 HTTP 代理,而另一个 HTTP 端点返回一个 gzipped 响应,它会尝试重新编码,导致响应乱码。

我们必须告诉 API Gateway 将我们的响应视为二进制 文件 — 不以任何方式接触它。

https://techblog.commercetools.com/gzip-on-aws-lambda-and-api-gateway-5170bb02b543

【讨论】:

    猜你喜欢
    • 2017-04-13
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    • 2019-10-20
    • 2021-10-23
    • 1970-01-01
    • 2021-09-19
    相关资源
    最近更新 更多