我有一些文件上传到EC2实例。 我想阅读并从lambda函数处理它们。从AWS读取EC2上的文件Lambda
有没有一个简短的代码片段(首选Python)如何做到这一点? 或者只是一个简短的教程?
我经历过吨的教程,但我不出来呢
我有一些文件上传到EC2实例。 我想阅读并从lambda函数处理它们。从AWS读取EC2上的文件Lambda
有没有一个简短的代码片段(首选Python)如何做到这一点? 或者只是一个简短的教程?
我经历过吨的教程,但我不出来呢
你将不得不使用一个Web服务器什么的EC2服务器莫名其妙地提供文件服务。或者您可以尝试使用Lambda函数中的SCP或SFTP库连接到EC2服务器并复制文件。在这些服务之间共享文件的正常方式是让EC2服务器上的进程将文件复制到S3,而不是将它们留在EC2服务器上。
您必须了解,根据默认设置,您的EC2卷不适用于实例外的任何人(或任何其他人)。为了理解,它们是“本地卷”。
您的lambda代码在您的EC2实例之外运行。您可以将其配置为像在VPC中一样运行,但即使在这种情况下,也无法访问实例中的“本地”卷。
为了让对文件的访问您的EC2里面lambda函数你有几个选择:
但问题是:考虑到所有其他可用的AWS服务,可能这种设计不是您的需求的解决方案。正如前面的回复中所述,也许你会更好地使用S3。或者,也许lambda不是最好的计算解决方案。请记住,Lambda有几个运行时间限制,并且考虑到Lambda限制,通过网络使用磁盘操作会使您处于危险区域。
如果您可以给我们提供关于您的用例的更多信息,我们可以帮助您更好地完成工作。
如果你决定使用EC2实例文件服务解决方案,确保:
在Python,有SimpleHTTPServer。你可以用它作为出发点,并加以强化以适应你的需求。
import SimpleHTTPServer
import SocketServer
PORT = 8000
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", PORT), Handler)
print "serving at port", PORT
httpd.serve_forever()
考虑将文件上传到S3,然后从s3:ObjectCreated:*事件触发您的Lambda函数。 – jarmod