15
我知道我可以使用commands
陣列將命令放在.ebextensions/*。config中的源代碼中。但是,這些都是在之間執行,但每個都會被部署。如果我想在啓動新實例時只執行一次配置命令,那麼該怎麼辦?何處放Elastic Beanstalk配置命令只能在spin-up上運行一次?
我知道我可以使用commands
陣列將命令放在.ebextensions/*。config中的源代碼中。但是,這些都是在之間執行,但每個都會被部署。如果我想在啓動新實例時只執行一次配置命令,那麼該怎麼辦?何處放Elastic Beanstalk配置命令只能在spin-up上運行一次?
可以使用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示例更新了帖子。 –