Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

203
Vistas
Ejecución de comandos tras la creación de instancias con AWS Elastic Beanstalk

He estado buscando varios métodos para ejecutar comandos al crear instancias EC2 usando Elastic Beanstalk en AWS. Me han proporcionado diferentes métodos para hacer esto a través del soporte técnico de AWS, incluidos enlaces de ciclo de vida, AMI personalizadas y extensiones .eb. He tenido problemas para que los 2 primeros métodos (ganchos de ciclo de vida y AMI personalizadas) funcionen con EB.

Actualmente estoy usando .ebextensions para ejecutar comandos al momento de la implementación, pero no estoy seguro de si hay una forma de ejecutar un conjunto de comandos solo al momento de la creación en lugar de cada vez que implemento el código. Por ejemplo, tengo un archivo .ebextensions/03-commands.config que contiene el siguiente código:

 container_commands: 01_npm_install: command: "npm install -g -f npm@latest"

Sin embargo, solo quiero que este código se ejecute en la creación de instancias, no cada vez que implemente, como lo hace actualmente. ¿Alguien sabe una manera de lograr esto?

¡Gracias por adelantado!

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Recomendaría crear un script idempotente en su aplicación que deje un archivo de marcador en la instancia en alguna ubicación, digamos /var/myapp/marker usando algo como mkdir -p /var/myapp-state/; touch /var/myapp-state/marker en ejecución exitosa. De esa manera, en su secuencia de comandos, puede verificar que, si existe el archivo de marcador, puede hacer que su secuencia de comandos no funcione.

Luego, puede llamar a su secuencia de comandos desde los comandos del contenedor, pero siempre será una operación no operativa porque en la primera ejecución exitosa creará el archivo de marcador y las ejecuciones posteriores no serán operativas.

over 4 years ago · Santiago Trujillo Denunciar

0

Cree una AMI personalizada. De esta manera, puede configurar sus instancias como quiera y se iniciarán más rápido.

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.customenv.html

Actualizar

No entiendo por qué alguien rechazaría esto. De todos modos, como también se ha dicho en los comentarios, las AMI personalizadas son una excelente manera de crear un comportamiento personalizado en sus instancias.

over 4 years ago · Santiago Trujillo Denunciar

0

Como veo en su pregunta, está usando: container_commands, eso significa que está usando Elastic Beanstalk con Docker. ¿Derecha? En este caso, recomendaría leer: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker.html .

La idea es que puede crear su propio Dockerfile, donde puede especificar todos los comandos que necesita para construir un contenedor docker, por ejemplo, para instalar todas las dependencias.

Recomendaría usar .ebextensions para la personalización y configuración de Elastic Beanstalk, por ejemplo, para especificar la configuración de ELB o RDS. En Dockerfile, tiene sentido especificar todos los comandos que necesita para crear un contenedor para su aplicación, que incluye la configuración del servidor web, las dependencias, etc.

Con este enfoque, Elastic Beanstalk creará un contenedor, que cada vez que implemente, ejecutará una instancia de Docker con el código fuente implementado.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda