【问题标题】:how to read API gateway body into json in lambda?如何在 lambda 中将 API 网关正文读入 json?
【发布时间】:2022-01-16 01:45:47
【问题描述】:

我有一个连接到以下 lambda 函数的 AWS API 网关函数:

exports.handler = async (event,context) => {   
     
    let buff = new Buffer(event.body,"base64");
    let data = buff.toString("ascii");
    

    const response = {
        statusCode: 200,
        body: JSON.stringify(data + ' Hello from Lambdsa!'),
    };
    return response;
};

这是一个POST函数,当前返回的是:

"----------------------------866060539566167157861191\r\nContent-Disposition: form-data; name=\"email\"\r\n\r\nmyemail.dk\n\r\n----------------------------866060539566167157861191--\r\n Hello from Lambdsa!"

如何将这个 base64 解码的内容转换为 JSON,以便在我的 lambda 函数中使用 HTTP API 更轻松地阅读?

【问题讨论】:

    标签: node.js amazon-web-services aws-lambda aws-api-gateway


    【解决方案1】:

    如果您只想在您的 lambda 函数中包含 body 并让请求和响应转换由 API Gateway 管理,那么您只需转到此 lambda 函数的 API Gateway 设置并禁用 Use Lambda Proxy Integration 选项。

    这里是使用和不使用它的区别的快速图形表示:

    另外,附上一个屏幕截图,您可以在其中找到禁用它的选项:

    注意:删除了一些敏感信息。

    现在您只需将 lambda 函数中的主体作为:

    exports.handler = async (body) => {
      try {
         // Do some operation here
          return body;
      } catch (error) {
          return error;
      }
    };
    

    【讨论】:

    • 我正在使用 HTTP API
    猜你喜欢
    • 2021-03-16
    • 2017-06-30
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 2015-10-17
    • 2020-06-21
    • 2021-10-02
    • 2021-07-24
    相关资源
    最近更新 更多