0

Я пытаюсь создать сервер Django на AWS. Моя Джанго приложение зависит от некоторых математических библиотек питона, как NumPy, SciPy, sklearn и т.д. Однако существует проблема, для которой мне нужно это после каждого развертыванияКак запускать скрипты автоматически после развертывания в AWS с помощью EB CLI?

sudo nano /etc/httpd/conf.d/wsgi.conf 
--------------------------------------- 
add this line in the file 
WSGIApplicationGroup %{GLOBAL} 
--------------------------------------- 
sudo /etc/init.d/httpd reload 

В принципе мне нужно «WSGIApplicationGroup %{GLOBAL}» в моем файле wsgi.conf в противном случае я получаю 504. Я использую пользовательский AMI, построенный на Amazon Linux 2014, и я использую EB CLI для развертывания. Однако всякий раз, когда я развертываю wsgi.conf, сбрасывается, и он не содержит строку, которую я добавил ранее, и мне нужно вручную SSH в экземпляр EC2 и выполнить эту задачу самостоятельно. Это дает накладные расходы при каждом развертывании, а также невыполнимо, как только мы масштабируем (клонирование или создание экземпляров также сбрасывает его). Итак, есть ли способ, который будет автоматически выполняться после каждого развертывания?

Содержимое wsgi.conf исправлено, поэтому в основном я могу легко создать сценарий для его создания, но проблема заключается в том, как автоматически запускать сценарий?

PS: Я новичок в AWS

+0

Вы пытались использовать .ebextensions и команды? http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#customize-containers-format-commands –

ответ

1

Вы должны использовать полнометражных AWS Elastic Beanstalk называемые .ebextensions: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html

В вашем случае вы не можете использовать файлы или Команды секции, потому что :

команды обрабатываются в алфавитном порядке по имени, и они бегут перед тем настроено приложение и веб-сервер, и файл приложения извлекается.

Вы должны использовать Container_commands раздел:

Они бегут после приложения и веб-сервер были установлены и версия файл приложения был извлечен, но до применения версия развернута.

Пример .ebextensions/01wsgi.config (не тестировалось :-))

container_commands: 

    apache_reload: 
    command: | 
     echo "WSGIApplicationGroup %{GLOBAL}" >> /etc/httpd/conf.d/wsgi.conf 
     /etc/init.d/httpd reload 

Вы можете настроить свой пример, как вы хотите, например, вы можете скопировать временный файл wsgi.conf где-то, а затем замените оригинал на Container_commands раздел.

Смежные вопросы