Guardando archivo en S3 desde Lambda con Node.js

Guardando archivo en S3 desde Lambda con Node.js

Como ejemplo propongo una función lambda recibiendo un POST con un JSON en el body, directamente guardamos en contenido del POST en un archivo JSON

const AWS = require('aws-sdk');

console.log("Loading...");

const uploadData = (filename, fileContent) => {
    return new Promise((resolve, reject) => {
        const s3 = new AWS.S3();
        const params = {
        Bucket: process.env.S3_Bucket,
        Key: `${filename}.json`,
        Body: fileContent
        }

        s3.upload(params, (err, data) => {
            if (err) {
                reject(err)
            }
            resolve(data.Location)
        })
    });
}

exports.handler =  async function(event, context) {
    if (event.path==="/" && event.httpMethod==="POST") {
        await uploadData(context.awsRequestId, event.body);
    }
    return {
        statusCode: 200,
        body: JSON.stringify({ requestId: context.awsRequestId })
    }
}
Mostrar comentarios