es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se puede crear el archivo de Elastic Beanstalk.

Ejecuto una aplicación de Django en EB. Mi objetivo es crear un script cron en /etc/cron.d durante el despliegue que ejecute trabajos de Django. Intenté crearlo utilizando un archivo de configuración de eb, pero hasta ahora no he podido crear ningún archivo en ninguna parte (verificando manualmente mediante sshing en el host).

Plataforma: Python 3.7 en Amazon Linux 2/3.3.9 de 64 bits

El contenido de “cron.config” se ve así:

files:
  "/etc/cron.d/cron_job":
    mode: "000644"
    owner: root
    group: root
    content: |
      * * * * * root echo "Cron en ejecución en " `date` > /home/ec2-user/cron_job.log

Lo que he intentado es lo siguiente. En todos los casos, la aplicación se despliega pero no se crea ningún archivo.
1. Colocar “cron.config” en la carpeta “.ebextensions”.
2. Colocar “cron.config” en la carpeta “.platform/hook/postdeploy”. El registro muestra “El directorio .platform/hooks/postdeploy/ no existe en la aplicación. Se omite este paso…”.
3. Especificar la ubicación del archivo como /tmp/cron_job.
4. Especificar la ubicación del archivo como /home/ec2-user/cron_job.

Agradecería cualquier ayuda.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para crear un script cron en /etc/cron.d durante el despliegue de una aplicación de Django en Elastic Beanstalk, puedes utilizar un archivo de configuración de ebextensions como cron.config. Sin embargo, según la información proporcionada, parece que el archivo no se está creando durante el despliegue. Aquí tienes algunas posibles soluciones que puedes probar:

    1. Verifica la sintaxis de cron.config y asegúrate de que sea válido YAML. Puedes utilizar un validador YAML en línea para comprobar esto.
    2. Asegúrate de que tu carpeta .ebextensions se encuentre en el directorio raíz del código fuente de tu aplicación. Si no es así, muévela allí y vuelve a desplegar tu aplicación.

    3. Verifica los permisos de los archivos y carpetas que estás intentando crear o actualizar. Asegúrate de que el usuario y el grupo sean correctos, y que los permisos del archivo permitan el acceso apropiado.

    4. Intenta especificar una ubicación de archivo diferente, como /tmp/cron_job o /var/spool/cron/root. Asegúrate de actualizar el contenido de cron.config en consecuencia con la nueva ruta de archivo.

    5. Agrega salidas de depuración a tu script de ebextensions para ver si se está omitiendo el paso de creación del archivo o si está fallando de alguna otra manera. Esto puede ayudar a identificar el problema y reducir las posibles soluciones.

    En general, es importante asegurarse de que el archivo se esté creando en la ubicación correcta y tenga los permisos correctos. Además, verifica los registros de Elastic Beanstalk para ver si hay algún error o advertencia relacionada con el script de ebextensions durante el despliegue.

Comments are closed.