So che posso inserire comandi nel codice sorgente in .ebextensions/*. Config utilizzando l'array commands
. Questi sono eseguiti su ogni distribuzione tuttavia. Che dire se voglio eseguire un comando di configurazione una volta sola durante la rotazione di una nuova istanza?Dove inserire i comandi di configurazione Elastic Beanstalk che vengono eseguiti una sola volta al momento della connessione?
15
A
risposta
34
I comandi possono essere eseguiti in modo condizionale utilizzando il modificatore test:
. Si specifica un test da eseguire. Se il test restituisce 0, il comando viene eseguito, altrimenti non lo è.
Se l'ultimo comando nel file di configurazione tocca un file e i comandi precedenti che si desidera eseguire solo dopo aver verificato l'esistenza di quel file, tali comandi verranno eseguiti solo la prima volta.
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
In Windows sarebbe qualcosa di simile
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
bella soluzione, grazie @Jim! –
Come faresti la stessa cosa ma su un server Windows? Come si differenzia la sintassi? Grazie. – SSED
Aggiornato il post con un esempio di Windows. –