云服务在上传文件时运行批处理脚本?

时间:2016-10-23 23:17:04

标签: windows batch-file amazon-s3 cloud azure-cloud-services

我希望对从我的网站上传的文件(一次一个)运行批处理脚本,并返回该批处理脚本生成的结果文件。该网站托管在共享的Linux环境中,因此我无法在服务器上运行批处理文件。

这听起来像是我可以用Amazon S3和Amazon Lambda完成的,但我想知道是否还有其他服务可以让我完成同样的任务。

1 个答案:

答案 0 :(得分:0)

我建议您查看S3 Events和Lambda。

使用S3事件,您可以在S3存储桶中的put和deletes上触发lambda函数,具体取决于您的"批处理文件"任务你可以纯粹在Lambda中实现你的目标。

如果您无法使用Lambda替换批处理文件的功能,可以尝试以下操作:

  • 如果您需要在特定实例上运行批处理,请查看Amazon SQS。您可以让S3事件触发Lambda在SQS中创建工作项,您的实例可以定期轮询SQS以进行处理。
  • 如果你需要一些更实时的东西,你可以使用亚马逊SNS推送而不是拉动上述方法。
  • 如果您不需要由特定实例处理该文件,但您必须针对它运行批处理文件,那么您可以让您的S3事件触发Lambda创建一个具有UserData脚本的实例将根据需要系统准备服务器,下载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/

Amazon 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

适用于Powershell Cmdlet参考的AWS工具 http://docs.aws.amazon.com/powershell/latest/reference/Index.html