django - keras - aws эластичный бобовый стебель - обновление данных для развернутого приложения - PullRequest
0 голосов
/ 24 декабря 2018

Фон

Я на Mac OS X Yosemite 10.10.5.Похоже, что здесь нет какой-либо литературы, ссылающейся на эту конкретную проблему с мерами сложности, которую я нахожу.Это включает простое развертывание приложения django.pythonanywhere развернет его, но невероятно медленно.У меня есть большой файл модели (.hd5), сгенерированный из глубокой сети в keras.Это примерно 1.5 GB по размеру.Весь мой проект о 1.77 GB.У меня весь проект работает отлично, с обобщенным кодом (например, с использованием os.path.join вместо относительных ссылок) и всем кошерным с документацией django.Это то, что подпитывает мою поисковую систему в моем приложении, без этого весь сайт не стоит развертывать, так как все d3.js диаграммы заполняются возвращенными данными.Такая же проблема возникла на pythonanywhere.com, после покупки расширенного пакета для хранения 5 ГБ сайт работал слишком медленно, чтобы даже оправдать его.Помните, что на моей локальной машине это происходит молниеносно (примерно через 30 секунд загрузки до того, как 127.0.0.1:8080 всплывет как действительное для посещения и тестирования).Конечно, это был прототип колбы, и теперь я перенес весь код на django, поскольку django, кажется, легче развернуть.

Проблема

Я прошел this весь учебник, от начала до конца, с военной точностью, и у меня не было ошибок, выполняемых локально.Это my django project после запуска python startproject dwsite.Я продолжал создавать приложение, которое я назвал deepwisdom, как вы видите в подпапке.Статические файлы и файлы шаблонов являются ссылками в этом каталоге, в основном это просто набор файлов кода начальной загрузки.Тем не менее, существует довольно большая папка данных 1.5 GB, которая необходима моему проекту для работы.У него есть объект модели и несколько небольших огурчиков, которые я загружаю, прежде чем приложение начнет ссылаться на стихи и содержание Библии.У меня там тоже маленький bible.db sqlite database.Короче говоря, никаких проблем при рендеринге или выполнении моих функций поиска локально, но я не могу загрузить все свое приложение из-за верхнего предела, который AWS установил для приложений EB (150 МБ).

После развертывания

Последние несколько строк руководства были успешными, as shown here в успешном развертывании приложения.Они раскрутили мне ведро s3 с именем:

elasticbeanstalk-us-east-1-281685280576

, и они раскрутили мне CNAME с именем:

django-env.mm9prjibak.us-east-1.elasticbeanstalk.com

Я немедленно изменил свой dwtest /dwtest.setting.py файл, чтобы отразить это, а затем перейти на сайт и получить именно то, что я ожидал, a missing data folder error отсутствующий файл данных из моей папки отсутствующих данных, которую я не мог загрузить синхроннос моим приложением.

Мое решение (ожидающий успех / неудача)

Итак, в моем экземпляре s3 у меня есть папка, созданная из eb cli с именем dwtest / app-181223_161536.zip

Этоименно то, что я ожидал, однако это не содержит мою папку данных из предыдущего изображения , так как это не позволило бы мне загрузить ее ранее, давая мне this error эту ошибку.

Хорошо, поэтому я фактически удалил эту папку zip, которая была sitting in here с заархивированной версией папки на моем рабочем столе;версия развернутого приложения.Как вы можете видеть, его больше нет, и я перезагружаю тот же самый zip-файл, разархивированный, с помещенной в него папкой данных, разархивированной и загружаемой.Эта загрузка длится вечно, поэтому я не проверял, будет ли она работать, однако я полагаю, что мне понадобится какой-то тип eb update или eb update-environment --application-name dwsite, который, кажется, кажется правильным из документации, но я понятия не имею.Скорее всего, это не сработает, поскольку, когда он просит меня сделать свежий deploy, он ссылается на папку на рабочем столе I cd dwsite.Поскольку ничего, что я пробовал за последнюю неделю, не сработалоЕсли никто не знает, что делать с этой ситуацией, суть в том, что у меня есть локально отлично работающее приложение django, и я официально не знаю, как его загрузить, однако я чувствую очень близко.

Если вы нашли время, чтобы прочитать этот пост, который является результатом моего разочарования за последние 5 дней, спасибо, даже если вы не можете помочь, я чувствую себя комфортно, зная, что кто-то, по крайней мере, признан мной, в отличие отГруппы технической поддержки из любой из этих компаний PaaS.

Очень уважительно, BMC

РЕДАКТИРОВАТЬ:

Это решение?С этот пост ?

aws elasticbeanstalk update-environment --application-name <your-app-name>  --
environment-name <environment-name-to-deploy>   --version-label <version-
label-to-deploy>

1 Ответ

0 голосов
/ 24 декабря 2018

Лучше всего отделить ваши данные от приложения и развернуть их отдельно.Вы можете сделать это с помощью beanstalk, сжав данные, создав корзину s3, а затем загрузив zip в эту корзину s3. Затем вы можете написать команду eb для загрузки данных на сервер по вашему выбору во время развертывания .Таким образом, ваш пакет кода остается меньше предела beanstalk (он также загружается в eb быстрее).Загрузка s3 на сервер будет очень быстрой, если вы используете шлюз vpc to s3.Обратите внимание, что этот метод будет иметь каждый сервер, имеющий свою собственную копию данных.Если вы хотите, чтобы ваши серверы обменивались данными, используйте AWS EFS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...