Create Django Superuser on AWS Elastic Beanstalk

I have a custom class called MyUser. It works great locally with registrations, logins, and so on. I am trying to deploy my application on AWS Elastic Beanstalk and I am having problems creating my superuser.

I tried to create a script file and run it as an official AWS guide . It doesn’t work well, so I decided to try the secondary method suggested here and create a custom manage.py command to create my user.

When deploying, I get the following errors in the log.

[Instance: i-8a0a6d6e Module: AWSEBAutoScalingGroup ConfigSet: null] Command failed on instance. Return code: 1 Output: [CMD-AppDeploy/AppDeployStage0/EbExtensionPostBuild] command failed with error code 1: Error occurred during build: Command 02_createsu failed.

[2015-03-10T08:05:20.464Z] INFO  [17937] : Command processor returning results: 
{"status":"FAILURE","api_version":"1.0","truncated":"false","results":[{"status":"FAILURE","msg":"[CMD-AppDeploy/AppDeployStage0/EbExtensionPostBuild] command failed with error code 1: Error occurred during build: Command 02_createsu failed","returncode":1,"events":[]}]}


[2015-03-10T08:05:20.463Z] ERROR [17937] : Command execution failed: [CMD-AppDeploy/AppDeployStage0/EbExtensionPostBuild] command failed with error code 1: Error occurred during build: Command 02_createsu failed (ElasticBeanstalk::ActivityFatalError)
at /opt/elasticbeanstalk/lib/ruby/lib/ruby/gems/2.1.0/gems/beanstalk-core-1.1/lib/elasticbeanstalk/activity.rb:189:in `rescue in exec'
...
caused by: command failed with error code 1: Error occurred during build: Command 02_createsu failed (Executor::NonZeroExitStatus)

The code is as follows:

This is my mysite.config file in .ebextensions /

01_syncdband it 03_collectstaticworks fine.

container_commands:
  01_syncdb:    
    command: "django-admin.py migrate --noinput"
    leader_only: true
  02_createsu:
    command: "manage.py createsu"
    leader_only: true
  03_collectstatic:
    command: "django-admin.py collectstatic --noinput"
option_settings:
  - namespace: aws:elasticbeanstalk:container:python
    option_name: WSGIPath
    value: treerating/wsgi.py
  - option_name: DJANGO_SETTINGS_MODULE
    value: treerating.settings

This is my file /profiles/management/commands/createsu.py:

from django.core.management.base import BaseCommand
from django.contrib.auth.models import User
from profiles.models import MyUser

class Command(BaseCommand):
    def handle(self, *args, **options):
        if MyUser.objects.count() == 0:
            MyUser.objects.create_superuser("admin", "treerating", "password")

__init__.py /management/ /commands/.

, . MyUser.objects.create_superuser().

EDIT: def handle():, True, . , create_superuser , - manage.py.

?

2: SSH . Python Path:

source /opt/python/run/venv/bin/activate source /opt/python/current/env

. AWS Django . , , - Python .config. , , , - , , .

+4
2

. python (.ebextensions/02_python.config), :

option_settings:
  "aws:elasticbeanstalk:application:environment":
    DJANGO_SETTINGS_MODULE: "iotd.settings"
    "PYTHONPATH": "/opt/python/current/app/iotd:$PYTHONPATH"
    "ALLOWED_HOSTS": ".elasticbeanstalk.com"

, , , , .

EDIT: , . , .

manage.py settings.py, , .

+1

, , - config.yml wsgi. eb config 50 , , . , .

0

All Articles