Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.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
Python 3.x 长时间轮询AWS S3以检查项目是否存在?_Python 3.x_Amazon Web Services_Amazon S3_Aws Lambda_Boto3 - Fatal编程技术网

Python 3.x 长时间轮询AWS S3以检查项目是否存在?

Python 3.x 长时间轮询AWS S3以检查项目是否存在?,python-3.x,amazon-web-services,amazon-s3,aws-lambda,boto3,Python 3.x,Amazon Web Services,Amazon S3,Aws Lambda,Boto3,这里的上下文很简单,有一个lambda lambda1,它异步创建一个文件,然后将其上传到S3 然后,另一个lambda lambda2接收即将存在的文件名,并需要继续检查S3,直到该文件存在 我认为S3触发器不起作用,因为lambda2是由客户机请求调用的 1 lambda和S3之间的此类请求是否需要收费?我将轮询它,直到对象存在 2我还有什么方法可以实现这一点而不产生费用 3我使用什么方法检查S3中是否存在文件?只需尝试获取它并检查状态代码?这看起来应该在Lambda上使用S3 object

这里的上下文很简单,有一个lambda lambda1,它异步创建一个文件,然后将其上传到S3

然后,另一个lambda lambda2接收即将存在的文件名,并需要继续检查S3,直到该文件存在

我认为S3触发器不起作用,因为lambda2是由客户机请求调用的

1 lambda和S3之间的此类请求是否需要收费?我将轮询它,直到对象存在

2我还有什么方法可以实现这一点而不产生费用


3我使用什么方法检查S3中是否存在文件?只需尝试获取它并检查状态代码?

这看起来应该在Lambda上使用S3 objectCreated触发器。这样,无论何时创建对象,它都会使用文件元数据自动触发Lambda函数


让我确保我理解正确

客户端调用Lambda1。Lambda1创建一个异步文件并上传到S3 lambda1启动异步处理后,对lambdaOne的调用将立即返回。 客户机调用lambda2,从s3中提取lambda1将要推送到那里的文件。
为什么不等待Lambda one创建文件并将其返回给客户机呢?否则,这将是一个昂贵的文件交换

您是否在lambda和S3之间使用了触发器?@ViharManchala无法工作,因为lambda2由客户端调用。您将为lambda执行时间付费。我建议你使用触发器。你能编辑你的问题并解释更多关于这个场景的信息吗?例如,lambda1异步创建文件是什么意思?Lambda函数是等待创建失败,还是在创建文件之前退出?那么文件实际上是如何创建的呢?你说lambda2需要不断检查是什么意思?你是说lambda2执行一次并保持在循环中,直到它看起来像是文件?鉴于Lambda函数有15分钟的时间限制,它通常会等待多长时间?lambda2被客户端请求调用是什么意思?编辑了我的问题,我认为这不适用于通过客户端请求调用它我看到,在这种情况下,你可以看到,客户端可能会等待几分钟的响应,我不认为这是好的设计我正在考虑绕过删除请求是免费的这一事实,所以我会沿着主文件做一个虚拟文件,并不断尝试删除它,当它成功时,我知道主文件已经准备好了:客户不会也在等待你的方法吗?他在等待文件,但不是响应,因为他不断地得到文件尚未准备好的响应,这是为了解决这个问题,所以问题是客户如何得到文件准备就绪的通知。