在哪里放置Elastic Beanstalk配置命令只能在旋转时运行一次?

Gab*_*ley 17 configuration provisioning amazon-web-services amazon-elastic-beanstalk

我知道我可以使用commands数组在.ebextensions/*.config中的源代码中输入命令.然而,这些都在每次部署时执行.如果我想在启动新实例时只执行一次配置命令怎么办?

Jim*_*gan 37

可以使用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
Run Code Online (Sandbox Code Playgroud)

在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
Run Code Online (Sandbox Code Playgroud)