我在EC2实例上上传了一些文件。 我想从lambda函数中读取并处理它们。
是否有一个简短的片段(Python首选)如何做到这一点? 或者只是一个简短的教程?
我已经完成了大量的教程,但我无法弄清楚
答案 0 :(得分:2)
如果您决定使用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()
答案 1 :(得分:1)
您必须使用Web服务器或其他东西以某种方式从EC2服务器提供文件。或者,您可以尝试使用Lambda函数中的SCP或SFTP库连接到EC2服务器并复制文件。在这些服务之间共享文件的正常方法是让EC2服务器上的进程将文件复制到S3,而不是将它们留在EC2服务器上。
答案 2 :(得分:1)
您必须了解,默认情况下,实例外的任何人(或任何人)都无法使用您的EC2卷。为了便于理解,它们是“本地卷”。
您的lambda代码在EC2实例之外运行。您可以将其配置为像在VPC中一样运行,但即使在这种情况下,它也无法访问您实例中的“本地”卷。
要访问EC2中的文件到lambda函数,您将有几个选项:
但关键是:考虑到所有其他可用的AWS服务,也许这个设计不是满足您需求的解决方案。正如之前的回复中所说的那样,使用S3可能会更好。或者lambda不是最好的计算解决方案。请记住,Lambda有一些运行时间限制,并且考虑到Lambda限制,使用网络磁盘操作会使您处于危险区域。
如果您可以向我们提供有关您的用例的更多信息,我们可以为您提供更好的帮助。