Проблемы подключения Django Elastic Beanstalk к RDS MySQL

Я пытаюсь подключить мой Django Elastic Beanstalk к моему RDS MySQL. Мой Django работает с моим RDS MySQL через localhost, но при попытке загрузить мой Django на Elastic Beanstalk я получаю "failed to deploy application" и AWS показывает ошибки (ниже). Мой проект имеет mysqlclient в requirements.txt, как здесь:

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

Согласно этой странице, этого должно быть достаточно. Я, конечно, пытался искать похожие вопросы, но пока безуспешно. Я заметил, что во многих вопросах говорится о необходимости создания файла packages.config внутри .ebextensions, я попробовал многие из этих предложений без успеха. В этом ли проблема? Почему об этом не упоминается на странице AWS?

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [16 lines of output]
      /bin/sh: mysql_config: command not found
      /bin/sh: mariadb_config: command not found
      /bin/sh: mysql_config: command not found
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-r0dz9d2g/mysqlclient_f2b5c53e43a648c284b06f7af63d9855/setup.py", line 15, in <module>
          metadata, options = get_config()
        File "/tmp/pip-install-r0dz9d2g/mysqlclient_f2b5c53e43a648c284b06f7af63d9855/setup_posix.py", line 70, in get_config
          libs = mysql_config("libs")
        File "/tmp/pip-install-r0dz9d2g/mysqlclient_f2b5c53e43a648c284b06f7af63d9855/setup_posix.py", line 31, in mysql_config
          raise OSError("{} not found".format(_mysql_config_path))
      OSError: mysql_config not found
      mysql_config --version
      mariadb_config --version
      mysql_config --libs
      [end of output]

Ответ на свой собственный вопрос. Я спросил нечто подобное позже AWS Elastic Beanstalk RDS MacOS mysqlclient not working и получил помощь.

Ответ действительно заключался в файле packages.config с yum, устанавливающим необходимые файлы (проверьте ссылку выше). Что-то еще было не так в моем коде, но ошибки, которые я получал, были такими же, как и выше, даже если packages.config был настроен правильно. Я понял это, потому что попытался вернуть базу данных SQLite и загрузить ее в Elastic Beanstalk, и это не сработало. (Я не помню, какие ошибки я получил, извините, я был в стрессе, думаю, что снова ошибки "111: Connection refused")

Как я добился работоспособности, я удалил все свои конфигурационные файлы и начал заново с обычного готового проекта, а затем следовал руководствам (как я делал раньше): https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.html. https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-rds.html#python-rds-connect

Оттуда я добавил файл packages.config в папку .ebextensions со следующим кодом...

packages: 
  yum:
    python3-devel: []
    mariadb-devel: []

... как отмечено в моем другом вопросе, ссылка на который приведена выше, а также здесь: ошибка установки mysqlclient в AWS Elastic Beanstalk

Мне также понадобились gunicorn и Procfile, я уже решил эту проблему, но стоит упомянуть, если вы здесь из-за проблем с Elastic Beanstalk и RDS.

Я также не понимал, могу ли я использовать yum в файле packages.config, если у меня нет его на компьютере, тем более что я использую MacOS, а на MacOS не принято использовать yum. На этот вопрос был дан ответ в другом моем вопросе, ссылка на который приведена в начале этого ответа. Ответ заключается в том, что вам не нужен yum на вашем компьютере в этом случае, потому что yum используется в этом случае сервером Amazon Linux 2 из Elastic Beanstalk.

Вернуться на верх