使用Boto3(在本地服务器上运行的脚本)将文件从S3复制到EC2实例上?

时间:2015-07-16 07:23:56

标签: amazon-web-services amazon-ec2 amazon-s3 boto boto3

我在我的本地服务器上使用Boto3(第一次使用boto / 3)运行python脚本,该服务器监视S3存储桶以获取新文件。当它检测到存储桶中的新文件时,它会启动一个已停止的EC2实例,其中加载了软件以处理这些所述文件,然后需要以某种方式指示S3 / EC2将新文件从S3复制到EC2。如何使用在本地服务器上运行的Boto3脚本来实现这一目标?

本质上,本地运行的脚本是进程的协调器,需要在有新文件要处理并在EC2实例上处理它们并将处理后的文件复制回S3时启动实例。我目前正试图弄清楚如何通过本地运行的脚本将文件从S3复制到EC2。我想避免从S3下载到本地服务器,然后上传到EC2。

建议/想法?

2 个答案:

答案 0 :(得分:3)

您应该考虑将Lambda用于任何基于S3事件的处理。为什么在不需要时启动和运行服务器?

答案 1 :(得分:0)

如果存储桶和其他参数的名称没有改变,您可以通过在EC2实例上添加一个脚本来实现它,该脚本将从存储桶中提取最新内容并设置此脚本每次都被触发你的EC2启动了。

如果s3命令参数确实发生了变化,你必须使用boto从本地机器上运行它,你需要找到一种方法来使用boto ssh进入EC2实例。检查此模块:boto.manage.cmdshell和类似的问题:Boto Execute shell command on ec2 instance