Amazon web services S3 putObject事件-收到旧版本

Amazon web services S3 putObject事件-收到旧版本,amazon-web-services,aws-lambda,amazon-cloudwatch,Amazon Web Services,Aws Lambda,Amazon Cloudwatch,我正在设置一个cloudwatch事件来触发s3put对象并调用lambda函数。我能够成功地触发函数,下面是我尝试运行的示例代码 exports.handler = function(event, context, callback) { console.log("Incoming Event: ", event); print("please"); const bucket = event.Records[0].s3.bucket.name; const filena

我正在设置一个cloudwatch事件来触发s3put对象并调用lambda函数。我能够成功地触发函数,下面是我尝试运行的示例代码

exports.handler = function(event, context, callback) {
   console.log("Incoming Event: ", event);
   print("please");
   const bucket = event.Records[0].s3.bucket.name;
   const filename = decodeURIComponent(event.Records[0].s3.object.key.replace(/\+/g, ' '));
   const message = `File is uploaded in - ${bucket} -> ${filename}`;
   console.log(message);
   callback(null, message);
};
我收到一个错误,因为事件数据不包含属性“Records”。我检查了,事件数据应该包含“记录”。文档中显示的版本为“eventVersion”:“2.2”。在事件数据中,我得到的版本为:eventVersion:'1.07'

是否需要一些额外的配置来实现此功能

以下是我的cloudwatch活动的样子:
您已经配置了CloudTrail API事件。这些事件的格式不同于从S3(链接到的文档)生成的事件通知


如果您转到S3 bucket并在那里应用事件触发器,它将采用您期望的格式。请参阅。

您已经配置了CloudTrail API事件。这些事件的格式不同于从S3(链接到的文档)生成的事件通知


如果您转到S3 bucket并在那里应用事件触发器,它将采用您期望的格式。请参阅。

听起来您好像没有被S3事件触发。您是如何设置事件触发器的,以及事件对象中的实际内容是什么?@jarmod我添加了cloudwatch事件设置的屏幕截图。您正在看到PutObject API调用的CloudTrail事件。该事件的格式将不同于S3中的等效事件(您链接到的文档)。如果您转到S3存储桶并在那里应用事件触发器,它将以您期望的格式运行。@jarmod它起作用了。听起来您好像没有被S3事件触发。您是如何设置事件触发器的,以及事件对象中的实际内容是什么?@jarmod我添加了cloudwatch事件设置的屏幕截图。您正在看到PutObject API调用的CloudTrail事件。该事件的格式将不同于S3中的等效事件(您链接到的文档)。如果您转到S3存储桶并在那里应用事件触发器,它将采用您期望的格式。@jarmod它工作了。