virginia servidores orquestador elastic ecs east container balancer aws amazon-web-services elastic-beanstalk

amazon web services - servidores - ¿Cuál es la diferencia entre los comandos y los comandos de contenedor en el lenguaje elástico



orquestador aws (3)

En aws elasticbean talk.

Cuando configuramos extensiones en .ebextensions

me pregunto cuál es la diferencia entre commands y container_commands

Mi orden es así

container_commands: 04_insert_app: command: "cat .ebextensions/insertapp_job.txt > /etc/cron.d/insertapp_job && chmod 644 /etc/cron.d/insertapp_job" leader_only: true

container_commands es trabajo.

comandos: tiene error .ebextensions/insertapp_job.txt no encontrado


Como complemento de la respuesta de @Tiro y @ t10508hn, solo quiero aclarar que tanto los commands como los container_commands se ejecutan en la máquina host.

Para ejecutar comandos dentro del contenedor docker use el Dockerfile .

Esto fue un punto de confusión cuando tuve que ejecutar un par de comandos con leader_only y asumí que container_commands realmente se ejecutaron dentro del contenedor.


He encontrado mi respuesta aquí aws documentos oficiales

commands : ejecutar comandos en la instancia de EC2

container_commands : ejecuta comandos para tu contenedor


La principal diferencia entre estas dos piezas es cuando en el proceso de implementación de Elastic Beanstalk se ejecutan.

Comandos

Estos comandos se ejecutan al principio del proceso de implementación, antes de que se haya configurado el servidor web y antes de que se haya desempaquetado el código de su aplicación:

Los comandos se procesan en orden alfabético por nombre y se ejecutan antes de que la aplicación y el servidor web se configuren y se extraiga el archivo de la versión de la aplicación. 1

De forma predeterminada, los comandos se ejecutan en la carpeta de inicio del usuario raíz. Esta y otras partes del comportamiento de EB se pueden cambiar a través de opciones (directorio de trabajo, si continuar con un error, variables de entorno para pasar a los comandos, etc.) que se pueden pasar junto con el comando.

Comandos de Contenedores

Estos comandos se ejecutan más adelante en el proceso de implementación, después de que el servidor web se haya configurado y después de que su código de aplicación haya sido desempaquetado en la carpeta de preparación, pero antes de que su aplicación haya sido "implementada" (al mover la carpeta de preparación a su versión final). ubicación):

Los comandos del contenedor se ejecutan después de que la aplicación y el servidor web se hayan configurado y se haya extraído el archivo de la versión de la aplicación, pero antes de que se despliegue la versión de la aplicación. Los comandos sin contenedor y otras operaciones de personalización se realizan antes de que se extraiga el código fuente de la aplicación. 2

De forma predeterminada, estos comandos se ejecutan en la carpeta de preparación, de modo que cualquier cambio que realice en la carpeta actual persistirá una vez que se implemente su aplicación (aunque la ruta cambiará, así que tenga cuidado con los enlaces relativos).

Los comandos de contenedor admiten todas las mismas opciones que los comandos (sin contenedor), pero también admiten la opción "leader_only":

Puede usar leader_only solo para ejecutar el comando en una sola instancia, o configurar una prueba para ejecutar solo el comando cuando un comando de prueba se evalúa como verdadero. Los comandos de contenedor de solo líder solo se ejecutan durante la creación e implementación de entornos, mientras que otros comandos y operaciones de personalización del servidor se realizan cada vez que una instancia se aprovisiona o actualiza. 2