这通常是由于触发器配置错误或Lambda函数代码不正确引起的问题。以下是解决此问题的步骤:
确保正确配置S3触发器。在Lambda控制台中,确保触发器配置的桶子名称和前缀与文件上传到的位置匹配。
在Lambda函数的代码中,将事件对象作为参数传递并检查对象中的key字段是否包含您感兴趣的前缀。例如:
exports.handler = function(event, context, callback) {
const key = event.Records[0].s3.object.key;
if (key.startsWith('subfolder/')) {
//do something
}
}
在这个例子中,如果上传到名为“mybucket”的桶子的子目录“subfolder”中,Lambda函数将处理这个事件。
通过这些步骤,您应该能够让AWS S3触发器工作在子文件夹中并成功触发Lambda函数。