#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, это одно и то же для каждой ситуации. 🙂