问题的原因是Lambda函数未在事件结构中正确引用Records对象。以下是示例代码,演示如何正确引用Records对象:
exports.handler = (event, context, callback) => {
//获取第一个记录(S3对象)资源的引用
const s3Object = event.Records[0].s3;
const bucketName = s3Object.bucket.name;
const objectKey = s3Object.object.key;
console.log(`Object ${objectKey} was added to bucket ${bucketName}.`);
//执行其他Lambda函数代码
...
};
在此示例中,Lambda函数代码正确获取了第一个记录并引用了s3对象。然后,使用该对象获取存储桶名称和对象键,并在控制台输出相应的消息。
要确保正确地从S3桶事件触发器接收到Records对象,请使用以上代码作为参考,并根据您的Lambda函数的要求进行适当修改。