AWS Lambda tiene una limitante de 6 MB para enviar información, por lo tanto es necesario agregar un método de compresión de datos para poder reducir el tamaño de la información que se requiere enviar.
En este caso el método es Deflate.
A la fecha AWS Lambda tiene soporte para NodeJS 12.x y 14.x por lo tanto es seguro confirmar que podemos utilizar el siguiente código, pero es necesario utilizar el payloadFormatVersion
versión 2 en API Gateway.
const { deflateSync } = require("zlib");
exports.handler = async (event) => {
const json = { hello: "world" };
try {
const compressed = deflateSync(JSON.stringify(json));
return {
statusCode: 200,
headers: {
"Content-Encoding": "deflate",
"Content-Type": "application/json",
"Content-Length": compressed.length,
},
body: compressed.toString("base64"),
isBase64Encoded: true,
};
} catch (err) {
return {
statusCode: 500,
body: JSON.stringify(err),
};
}
};