Облачные службы для запуска пакетного скрипта при загрузке файла?

#windows #batch-file #amazon-s3 #cloud #azure-cloud-services

#Windows #пакетный файл #amazon-s3 #облако #azure-cloud-services

Вопрос:

Я хочу запустить пакетный скрипт для файлов, которые загружаются с моего веб-сайта (по одному за раз), и вернуть результирующий файл, созданный этим пакетным скриптом. Веб-сайт размещен в общей среде Linux, поэтому я не могу запустить пакетный файл на сервере.

Похоже, это то, чего я мог бы достичь с помощью Amazon S3 и Amazon Lambda, но мне было интересно, существуют ли какие-либо другие сервисы, которые позволили бы мне выполнить ту же задачу.

Ответ №1:

Я бы рекомендовал вам изучить события S3 и Lambda.

Используя события S3, вы можете запускать лямбда-функцию при размещении и удалении в корзине S3, и в зависимости от вашей задачи «пакетный файл» вы можете достичь своей цели исключительно в Lambda.

Если вы не можете использовать Lambda для замены функциональности вашего пакетного файла, вы можете попробовать следующее:

  • Если вам нужно запустить пакетный процесс в определенном экземпляре, взгляните на Amazon SQS. Вы можете запустить запуск события S3 Lambda для создания рабочего элемента в SQS, и ваш экземпляр сможет регулярно опрашивать SQS на предмет выполнения работы. для обработки.
  • Если вам нужно что-то более оперативное, вы могли бы использовать Amazon SNS для быстрого, а не вытягивающего подхода к описанному выше.
  • Если вам не нужно, чтобы файл обрабатывался конкретным экземпляром, но вам необходимо запустить с ним пакетный файл, возможно, вы можете инициировать событие S3 Lambda, создав экземпляр со скриптом UserData, который при необходимости подготовит сервер к системе, загрузит файл s3, обработает пакет с ним, а затем, наконец, завершит работу самостоятельно, просмотрев его собственный идентификатор экземпляра через службу метаданных EC2 и вызвав метод api terminate instances.

Вот некоторые связанные чтения, которые помогут с вышеупомянутыми подходами:

Amazon SQS
https://aws.amazon.com/documentation/sqs /

Amazon SNS
https://aws.amazon.com/documentation/sns /

Amazon Lambda
https://aws.amazon.com/documentation/lambda /

Уведомления о событиях Amazon S3
http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html

Пользовательские данные EC2
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 Tools for Powershell
http://docs.aws.amazon.com/powershell/latest/reference/Index.html

Комментарии:

1. Это отличный совет! Похоже, мне есть чему поучиться с этими сервисами Amazon. Был бы общий совет таким же, если бы я хотел использовать предварительно скомпилированный .exe для выполнения обработки вместо пакетного скрипта? S3 Event triggered on put of file -> pass file to .exe through command line arguments -> take file created by .exe and pass it back

2. будь то .bat или .exe, это одно и то же для каждой ситуации. 🙂