15

Я знаю, что могу поместить команды в свой исходный код в .ebextensions/*. Config, используя массив commands. Они выполняются на раз в. Что делать, если я хочу выполнить команду конфигурации только один раз, когда разворачивает новый экземпляр?Куда поместить команды конфигурации эластичного beanstalk, которые запускаются только один раз при развороте?

ответ

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 
+0

хорошего решения, благодаря @Jim! –

+0

Как бы вы сделали то же самое, но на сервере Windows? Как отличается синтаксис? Благодарю. – SSED

+0

Обновлено сообщение с примером Windows. –

 Смежные вопросы

  • Нет связанных вопросов^_^