AWS Beanstalk с Django: eb create жалуется на неизвестный параметр конфигурации 'StaticFile' - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь развернуть приложение django с Elasticbeanstalk, следуя этой настройке

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.html

и это

https://www.1strategy.com/blog/2017/05/23/tutorial-django-elastic-beanstalk/

При первой попытке, в .ebextension / django .config у меня

option_settings:
  "aws:elasticbeanstalk:application:environment":
    DJANGO_SETTINGS_MODULE: "my_django_path_name.settings"
    PYTHONPATH: "$PYTHONPATH"
  "aws:elasticbeanstalk:container:python":
    WSGIPath: "my_django_path_name/wsgi.py"
    StaticFiles: "/static/=www/static/"

при звонке eb create жалуется на

ERROR: ServiceError - Configuration validation exception: Invalid option specification (Namespace: 
'aws:elasticbeanstalk:container:python', OptionName: 'StaticFiles'): Unknown configuration setting.

Итак, я вынул часть StaticFiles, и в конечном итоге она стала

option_settings:
  "aws:elasticbeanstalk:container:python":
    WSGIPath: "my_django_path_name/wsgi.py"

и ВСЕ ЕЩЕ жалуется на неизвестное OptionName: StaticFiles

Затем я использовал пример в https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-container.html#python -namespaces с незначительной настройкой

option_settings:
  aws:elasticbeanstalk:application:environment:
    DJANGO_SETTINGS_MODULE: production.settings

  aws:elasticbeanstalk:container:python:
    WSGIPath: ebdjango.wsgi:application
    NumProcesses: 3
    NumThreads: 20

, но он ВСЕ ЕЩЕ жалуется на то же самое.

Я не знаю, где находится имя параметра StaticFiles читается. Его нет в файле .config. Это где-то в кеше что ли?

Ответы [ 2 ]

0 голосов
/ 02 июня 2020

Здесь есть две проблемы:

  1. Как указано выше в @Marcin, eb CLI читает файлы из git, поэтому вам нужно только зафиксировать изменения на вашем локальном git репо перед запуском eb deploy. Не нужно указывать sh на удаленное репо.
  2. Поскольку кажется, что вы используете новую платформу Amazon Linux 2 в EB, обслуживание файлов stati c удалено из ее функций. Итак, вы должны обслуживать свои файлы stati c извне через корзину S3, например.

Источники:

  • Amazon Linux 2 ограничения платформ

    Amazon Linux На 2 платформах отсутствуют некоторые функции по сравнению на Amazon Linux платформы AMI (предшествующие Amazon Linux 2): обслуживаемые файлы c и пользовательские платформы

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.migration-al.html

  • Параметр staticfiles не поддерживается

    Настройка файлов stati c с использованием пространства имен aws:elasticbeanstalk:container:python:staticfiles поддерживается только в версиях платформы Amazon Linux AMI Python.

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-container.html#python -пространства имен

0 голосов
/ 29 мая 2020

На основе обсуждения в комментариях было обнаружено, что проблема была вызвана тем фактом, что eb развертывал старую версию из git, а не локальную исправленную версию приложение.

Решением было pu sh изменения в git, чтобы развернуть новую версию.

...