簡體   English   中英

每當我在 s3 上獲得新視頻文件時,如何將 s3 存儲桶視頻文件連接到 ec2 實例並在 ec2 上自動運行 python 腳本?

[英]How do i connect s3 bucket video files to ec2 instance and run python script on ec2 automatically whenever i get new video files on s3?

我的s3存儲桶上有一個文件夾,其中包含大約100 個視頻(mp4) 文件。 每次 s3 存儲桶攝取這 100 個視頻時,它應該自動在EC2上運行 python 腳本,該腳本將處理這 100 個視頻文件並生成一組新的已處理視頻。 這些視頻我需要使用名為 generate_video 的新文件夾再次存儲在 s3 中。

首先可以向我建議如何在這方面采取正確的程序。

典型的方法不是在 Amazon EC2 實例上觸發腳本,而是讓 EC2 實例輪詢 Amazon SQS 消息:

  • 在 Amazon S3 存儲桶上配置觸發器,以在存儲桶中創建新的 object 時向 Amazon SQS 隊列發送消息
  • Amazon EC2 實例上運行代碼將持續:
    • 在 Amazon SQS 隊列上調用ReceiveMessage()
    • 如果返回消息,則處理消息中引用的 object
    • 繼續循環

調用ReceiveMessage()時,使用ReceiveMessageWaitTimeSeconds = 20告訴 SQS 最多等待 20 秒,直到收到消息。 這減少了它需要調用 SQS 的次數。

這種架構可以很好地擴展。 如果在將新文件上傳到 S3 時 EC2 實例上的腳本處於“忙碌”狀態,則該消息將簡單地位於 SQS 隊列中,直到實例准備就緒。 同樣,如果 EC2 實例出現問題,消息會排隊等待修復,而不是錯過處理 S3 object。

根據處理步驟的復雜性,您還可以處理AWS Lambda function中的對象。 它將以相同的方式運行,除了 S3 可以直接觸發 Lambda function 而不需要 SQS 隊列。

暫無
暫無

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

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