我正在尝试自动化一个过程,该过程收集一个(或多个)AWS实例上的数据,每小时将数据上传到S3,然后由一个分离的进程检索以进行解析和进一步操作。作为第一步,我启动了一些crontab启动的shell脚本(在ubuntu12.04lts中运行),它调用boto实用程序s3multiput。在
在大多数情况下,这是很好的,但非常偶尔(可能一周一次)文件无法出现在s3存储桶中,我看不到抛出任何错误或异常来跟踪原因。在
我使用的是boto2.6.0附带的s3multiput实用程序。python2.7.3是实例上的默认Python。我为实例分配了一个IAM角色,以向boto提供AWS凭据。在
我有一个crontab调用一个脚本,该脚本调用一个调用s3multiput的包装器。我在s3multiput调用中包含了-d 1
标志,并用2>&1
重定向了crontab作业的所有输出,但是丢失数据的小时的报告看起来与前一小时和之后一小时的报告一样,每个小时都成功了。在
所以,99%的情况下,这是有效的,但当它失败的时候,我不知道为什么,我也很难找到寻找的地方。当解析器作业试图从bucket中提取数据时,我才发现这个失败。数据在应该上传的目录中是安全可靠的,所以我可以手动完成,但不必这样做。在
如果有帮助的话,我很乐意贴出30-40行的相关代码,但我想知道是否有其他人遇到过这种情况,这听起来很熟悉。在
总有一天我会回到管道的这一部分,用python重写它以避免s3multiput,但是我们还没有足够的开发时间。在
我如何调查s3multiput上传的问题?在
首先,我将尝试更新boto;当多部分上载失败时,提交到开发分支会提到日志记录。注意,这样做需要使用}。在
s3put
,因为s3multiput
被折叠成{相关问题 更多 >
编程相关推荐