2016-10-23 114 views
0

我正在尋找對從我的網站(一次一個)上傳的文件運行批處理腳本,並返回由該批處理腳本生成的結果文件。該網站託管在共享的Linux環境中,所以我無法在服務器上運行批處理文件。Cloud Services在文件上傳時運行批處理腳本?

這聽起來像是我可以用Amazon S3和Amazon Lambda完成的事情,但我想知道是否有其他服務可以讓我完成相同的任務。

回答

0

我建議你看看S3 Events和Lambda。

使用S3事件,您可以在S3存儲桶中觸發放入和刪除的lambda函數,並根據您的「批處理文件」任務,您可以純粹在Lambda中實現您的目標。

如果您不能使用lambda來替換你批的功能文件,你可以嘗試以下方法:

  • 如果你需要有一個具體的實例的批處理進程運行,看看亞馬遜SQS。您可以讓S3事件觸發Lambda在SQS中創建工作項目,並且您的實例可以定期輪詢SQS處理工作。
  • 如果您需要一些更實時的東西,您可以使用Amazon SNS進行推送,而不是使用上述方法。
  • 如果不需要特定實例要處理的文件,但必須運行批處理文件,也許可以讓您的S3事件觸發Lambda創建一個具有UserData腳本的實例,該腳本將sys根據需要準備服務器,下載s3文件,根據它處理批處理,然後通過EC2元數據服務查找自己的實例ID並調用api方法終止實例來最終自行終止。

下面是一些相關的閱讀,以幫助上述方法:

亞馬遜SQS https://aws.amazon.com/documentation/sqs/

亞馬遜SNS https://aws.amazon.com/documentation/sns/

亞馬遜LAMBDA https://aws.amazon.com/documentation/lambda/

亞馬遜S3事件通知 http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html

EC2的UserData http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data

EC2元數據服務 http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html#instancedata-data-retrieval

AWS工具PowerShell命令參考 http://docs.aws.amazon.com/powershell/latest/reference/Index.html

+0

這就是一些很好的建議!看起來我有很多東西要學習這些亞馬遜服務。如果我想使用預編譯的.exe來執行處理,而不是批處理腳本,那麼一般建議是否一樣? '在文件放置時觸發的S3事件 - >通過命令行參數將文件傳遞給.exe文件 - >取得由.exe文件創建並傳回的文件' –

+0

.bat或.exe對於每種情況都是相同的。 :) –