Получение сообщения Task timed out after 3.01 seconds
в cloudwatch при попытке прочитать large JSON(66mb)
из S3 bucket
и записать данные в DynamodB.
Меньшие файлы JSON читают и записывают в мою таблицу DynamodB, но когда файл JSONсодержит большее количество объектов (4000 объектов, файл 66 МБ), в этом случае лямбда-функция просто возвращает Task timed out after 3.01 seconds
.
const AWS = require('aws-sdk');
const s3 = new AWS.S3();
const documentClient = new AWS.DynamoDB.DocumentClient( {
convertEmptyValues: true
} );
exports.handler = async (event) => {
const{name} = event.Records[0].s3.bucket;
const{key} = event.Records[0].s3.object;
const params = {
Bucket: name,
Key: key
}
try {
const data = await s3.getObject(params).promise();
const carsStr = data.Body.toString();
const usersJSON = JSON.parse(carsStr);
console.log(`USERS ::: ${carsStr}`);
for (var i = 0; i < usersJSON.length; i++) {
var record = usersJSON[i];
console.log("Inserting record: " + record);
var putParams = {
Item: record,
ReturnConsumedCapacity: "TOTAL",
TableName: "cars"
};
await documentClient.put(putParams).promise();
}
} catch(err) {
console.log(err);
}
};