Весь день отлаживал и до сих пор не могу понять, почему мой метод s3.upload()
не вызывается внутри моей лямбда-функции. Кто-то, пожалуйста, помогите
const AWS = require('aws-sdk');
let s3= new AWS.S3();
exports.handler = (event, context, callback) => {
var message_body = JSON.parse(event.body);
let encodedImage = message_body.base64;
let decodedImage = Buffer.from(encodedImage, 'base64');
var params = {
"Body": decodedImage,
"Bucket": "testbucket1-bucket",
"Key": "testkey1.jpg"
};
console.log("function triggered. ");
s3.upload(params).promise()
.then(data => {
console.log('complete:PUT Object',data);
callback(null, data);
})
.catch(err => {
console.log('failure:PUT Object', err);
callback(err);
});
};
В Cloudwatch
, нет ошибок во всей функции. Я удостоверился, что функция имеет доступ к s3, корзина опубликована c, и имя корзины правильное много раз. Это просто время ожидания через 30 секунд. Ни один из методов обратного вызова s3.upload()
не запускается, и я не могу до конца жизни понять, почему.
Идентифицированная проблема
.... I просто выяснил проблему, потратив столько времени. У моей лямбда-функции был VP C, который не предоставлял доступ к S3 .... Теперь функция не работает по тайм-ауту, и загрузка наконец работает.