Где добавить команды конфигурации эластичного beanstalk, которые запускаются только один раз при развороте?

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

Ответы

Ответ 1

Команды могут выполняться условно с помощью модификатора 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