Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS上传后,S3不会触发lambda函数_Amazon Web Services_Amazon S3_Aws Lambda_Terraform Provider Aws_Eventtrigger - Fatal编程技术网

Amazon web services AWS上传后,S3不会触发lambda函数

Amazon web services AWS上传后,S3不会触发lambda函数,amazon-web-services,amazon-s3,aws-lambda,terraform-provider-aws,eventtrigger,Amazon Web Services,Amazon S3,Aws Lambda,Terraform Provider Aws,Eventtrigger,我对AWS Lambda和S3有问题 我使用terraform部署所有AWS体系结构。我有一个bucket,我可以在其中上传XML文件,触发lambda来处理这些文件(这些事件都有很好的通知) 问题是,在部署我的体系结构之后,当我将一个XML文件放入我的存储桶中时,最初几次什么都没有发生。好像我上传的第一个文件没有被考虑在内,S3也没有向Lambda发送通知 有时,在开始考虑S3之前,我必须将几个文件发送到S3,或者我使用GUI在S3控制台中修改通知,而无需更改任何内容,只需单击“保存”。我不知

我对AWS Lambda和S3有问题

我使用terraform部署所有AWS体系结构。我有一个bucket,我可以在其中上传XML文件,触发lambda来处理这些文件(这些事件都有很好的通知)

问题是,在部署我的体系结构之后,当我将一个XML文件放入我的存储桶中时,最初几次什么都没有发生。好像我上传的第一个文件没有被考虑在内,S3也没有向Lambda发送通知

有时,在开始考虑S3之前,我必须将几个文件发送到S3,或者我使用GUI在S3控制台中修改通知,而无需更改任何内容,只需单击“保存”。我不知道如何调查这个问题

你能告诉我是否有人有过类似的病例吗? 另外,您是否可以查看S3存储桶上发生的所有事件(上传的文件、发送的事件等)的历史记录来调查我的问题


提前感谢。

您体验的关键是,它发生在您创建bucket和触发器之后。许多AWS系统都有一个最终一致性模型。在S3的情况下,对象和存储桶最终在3个可用性区域中保持一致性


简而言之,在S3实例上的事件触发器之前,将对象放在其中一个S3实例上

你所经历的关键是,它发生在你创建bucket和触发器之后。许多AWS系统都有一个最终一致性模型。在S3的情况下,对象和存储桶最终在3个可用性区域中保持一致性


简而言之,在S3实例上的事件触发器之前,将对象放在其中一个S3实例上

您是否为Lambda启用了Cloudwatch?S3存储桶上的PutObject触发器到Lambda应该会在每个事件上触发,因此跟踪Cloudwatch中这些事件发生的情况将是我第一件要看的事情。您知道Lambda没有被触发吗?是因为lambda应该执行的操作尚未执行,还是因为您已经检查了lambda cloudwatch日志,可以看到lambda尚未被调用?这两者之间有着天壤之别。我怀疑是前者,这可能是由于lambda代码中的一个问题造成的,并且可以解释它间歇性地失败。您能分享bucket的配置吗?当您启用对Lambda的通知时。关注:Bucket>Properties>Events致以最诚挚的问候。您好,谢谢您的回答。我说过当我上传第一个对象时不会触发lambda,因为当我查看lambda的CloudWatch日志时,没有日志,我们可以看到lambda没有被调用。我的bucket事件发生在文件夹upload/上创建的每个对象上,扩展名为“.xml”,触发lambdaDo您为lambda启用了CloudWatch吗?S3存储桶上的PutObject触发器到Lambda应该会在每个事件上触发,因此跟踪Cloudwatch中这些事件发生的情况将是我第一件要看的事情。您知道Lambda没有被触发吗?是因为lambda应该执行的操作尚未执行,还是因为您已经检查了lambda cloudwatch日志,可以看到lambda尚未被调用?这两者之间有着天壤之别。我怀疑是前者,这可能是由于lambda代码中的一个问题造成的,并且可以解释它间歇性地失败。您能分享bucket的配置吗?当您启用对Lambda的通知时。关注:Bucket>Properties>Events致以最诚挚的问候。您好,谢谢您的回答。我说过当我上传第一个对象时不会触发lambda,因为当我查看CloudWatch日志中的lambda时,没有日志,我们可以看到lambda没有被调用。我的bucket事件发生在文件夹upload/上创建的每个对象上,扩展名为“.xml”,触发lambdaHi并感谢您的回答。我不确定我是否理解,我部署的所有架构都只在AWS上的一个区域中。在实际触发第一个事件之前是否存在某种延迟?简言之,是的,配置更改将产生延迟。您好,谢谢您的回答。我不确定我是否理解,我部署的所有架构都只在AWS上的一个区域中。在实际触发第一个事件之前是否存在某种延迟?简言之,是的,配置更改将产生延迟。