Запустить пакетный файл на экземпляре Windows EC2, а затем закрыть экземпляр? - PullRequest
0 голосов
/ 29 августа 2018

У меня есть файл .bat в экземпляре windows ec2, который я хотел бы запускать каждый день.

Можно ли запланировать запуск экземпляра этого файла каждый день, а затем завершить работу экземпляра ec2, не заходя вручную в консоль управления ec2 и не запуская экземпляр?

1 Ответ

0 голосов
/ 30 августа 2018

Здесь есть два требования:

  • Запускать экземпляр каждый день в определенное время (это предположение, которое я сделал на основании вашего желания выключать экземпляр каждый день, поэтому что-то должно его включить)
  • Запустите скрипт и затем shutdown

Вариант 1: запуск и остановка

Amazon CloudWatch Events может выполнять задачу по заданному расписанию, например один раз в день. Хотя он имеет много встроенных возможностей, он не может изначально запустить экземпляр. Поэтому настройте его на для запуска функции AWS Lambda . Функция Lambda может запустить экземпляр с помощью одного вызова API.

Когда экземпляр запускается , используйте обычные возможности ОС Windows, чтобы запустили нужную программу , например: Автоматический запуск программы при запуске Windows Server

Когда программа завершит работу, она должна подать команду ОС Windows на shutdown Windows. Преимущество такого способа (вместо попытки запланировать завершение работы) состоит в том, что программа будет работать до завершения, прежде чем будет активировано любое завершение работы. Обязательно настройте экземпляр EC2 на Stop on Shutdown (это поведение по умолчанию).

Вариант 2: запуск и завершение

Вместо запуска и остановки экземпляра вы можете вместо этого запустить новый экземпляр с помощью расписания событий Amazon CloudWatch.

Передайте требуемый сценарий PowerShell для запуска в экземпляре Данные пользователя . Этот скрипт может устанавливать и запускать программное обеспечение.

Когда сценарий завершится, он должен вызвать команду ОС Windows для завершения работы Windows. Однако на этот раз настройте Завершить при завершении работы , чтобы экземпляр был остановлен (удален). Это хорошо, потому что вышеприведенное расписание запустит новый экземпляр в следующий раз.

Преимущество этого метода заключается в том, что конфигурация программного обеспечения и то, что должно выполняться каждый раз, могут быть полностью настроены с помощью сценария пользовательских данных, вместо того, чтобы запускать экземпляр, входить в систему, изменять сценарии, а затем завершать работу. Нет необходимости держать экземпляр рядом, чтобы его просто останавливали большую часть дня.

Вариант 3: Переосмыслите свой план и перейдите без сервера!

Вместо использования экземпляра Amazon EC2 для запуска сценария, изучите возможность запуска функции AWS Lambda. Функция Lambda может выполнять всю необходимую обработку без необходимости запускать / запускать / останавливать / завершать экземпляры. Это также дешевле!

Некоторые ограничения могут помешать этой опции (например, максимальная продолжительность выполнения 5 минут, ограничение дискового пространства 500 МБ), но это должен быть первый вариант , который вы исследуете, а не запускаете / останавливаете экземпляр Amazon EC2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...