Я знаю, что могу поместить команды в свой исходный код в .ebextensions/*. Config, используя массив commands
. Они выполняются на раз в. Что делать, если я хочу выполнить команду конфигурации только один раз, когда разворачивает новый экземпляр?Куда поместить команды конфигурации эластичного beanstalk, которые запускаются только один раз при развороте?
15
A
ответ
34
Команды могут запускаться условно с использованием модификатора test:
. Вы указываете тест, который нужно выполнить. Если тест возвращает 0, команда запускается, иначе это не так.
Если последняя команда в вашем файле конфигурации касается файла и вышеприведенных команд, которые вы хотите запустить только после проверки наличия этого файла, то эти команды будут запускаться только в первый раз.
commands:
01-do-always:
command: run_my_script
02-do-on-boot:
command: script_to_run_once
test: test ! -f .semaphore
99-signal-startup-complete:
command: touch .semaphore
В Windows это будет что-то вроде этого
commands:
01-do-always:
command: run_my_script
02-do-on-boot:
command: script_to_run_once
test: if exists c:\\path\\to\\semaphore.txt (exit 0) else (exit 1)
99-signal-startup-complete:
command: date > c:\\path\\to\\semaphore.txt
хорошего решения, благодаря @Jim! –
Как бы вы сделали то же самое, но на сервере Windows? Как отличается синтаксис? Благодарю. – SSED
Обновлено сообщение с примером Windows. –