簡體   English   中英

當新對象到達S3存儲桶時觸發Lambda函數

[英]Trigger Lambda function when a new object arrives in S3 bucket

我有一個名為“文件”的S3存儲桶。 每天都有新文件到達。 例:

/files/data-01-23-2017--11-33am.txt
/files/data-01-24-2017--10-28am.txt

當新文件到達時,我將如何執行Lambda函數並設置觸發器以在EC2上執行一個Shell腳本? 新文件的示例是:

/files/data-01-25-2017--11-43am.txt

我想在EC2上執行的命令是(使用參數作為剛到達的新文件名):

python /home/ec2-user/jobs/run_job.py data-01-25-2017--11-43am.txt

可以將Amazon S3配置為在創建新對象時觸發AWS Lambda函數。 但是,Lambda函數無法訪問您的Amazon EC2實例。 它不是適合使用的體系結構。

一些替代選項 (這些是單獨的選項,而不是多個步驟):

  • 無需在Amazon EC2實例上運行命令,而是將代碼放入Lambda函數 (無需EC2實例)。 (最佳選擇!)
  • 配置Amazon S3以將消息推送到Amazon SQS隊列中 讓您的代碼在EC2實例上定期輪詢隊列。 收到消息后,在S3中處理對象。
  • 配置Amazon S3以將消息發送到Amazon SNS主題 將您的應用程序的端點(實際上是API)訂閱到SNS隊列,以便在創建新對象時收到消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM