我有一些文件上傳到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