如何使用 AWS Lambda 获取网页以及 return body 和 headers

How to use AWS Lambda to fetch a webpage and return body and headers

我正在尝试使用 Lambda 函数获取网页,然后 return 内容和响应 headers。以下是我的代码,当由网关 API 触发时,它总是 return "Internal server error",我对如何构建 response object 感到困惑,它似乎没有有任何关于它的文件。非常感谢任何命中!

const fetch = require('node-fetch');

exports.handler = async (event) => {
    // TODO implement
    let r = await fetch('http://www.google.com');
    let buffer = await r.buffer();
    const response = {
        statusCode: r.status,
        body: buffer,
        header: r.headers
    };

    return response;
};

我认为您的问题是您使用的是 response.buffer() 方法。你应该在这里使用的是 response.text() 方法。它将 return 以纯文本形式响应 body。由于您从响应中获得的 headers 已经包含 Content-Type: text/html header,您应该能够 return 一个 html 文档。