Ошибка: укажите этап create_pg_db в настройках Zappa.

Введение: я развертываю приложение django на AWS lambda без каких-либо ограничений, используя zappa. У моего экземпляра RDS есть база данных postgres. Я смотрю видео Rich Jones djangocon о том, как развернуть приложение django с помощью zappa. . Пока мне удалось добраться до той части, где мне нужно добавить базу данных в мой проект. Я уже сделал pip install zappa-django-utils и добавил в свой INSTALLED_APPS. Теперь, когда я пытаюсь бежать

zappa manage create_pg_db production Я получаю сообщение об ошибке:

Error: Please define stage 'create_pg_db' in your Zappa settings.

Я даже пробовал zappa manage create_pg_db У меня все та же ошибка

Вот как выглядит мой файл zappa_settings.json:

{
    "production": {
        "aws_region": "us-east-1",
        "django_settings": "Cool.settings",
        "profile_name": "default",
        "project_name": "cool",
        "runtime": "python3.6",
        "s3_bucket": "cool-7dsfsdf5",
        "project_directory": "/tmp/code",
        "slim_handler": true,
        "vpc config": {
            "SubnetIds": [
                "subnet-3132ss13b",
                "subnet-321321319",
                "subnet-2c2313223",
                "subnet-5ljlkjljd",
                "subnet-132121357",
                "subnet-f925f9c7"
            ],
            "SecurityGroupIds": [
                "sg-a9asdasd"
            ]
        }
    },
    "production_ap_northeast_1": {
        "aws_region": "ap-northeast-1",
        "extends": "production"
    },
    "production_ap_northeast_2": {
        "aws_region": "ap-northeast-2",
        "extends": "production"
    },
    ... All regions..
}

Как определить этап create_pg_db в настройках Zappa. Кто-нибудь знает шаги впереди этого.

Результаты с zappa manage production create_pg_db

(Venv) $ django-admin --version
1.11.15
(Venv) $ zappa manage production create_pg_db
[START] RequestId: c621321b9-611d-4457-9c23-f65465653dd Version: $LATEST
[DEBUG] 2019-01-28T04:55:05.629Z c6231b9-611d-4457-9c23-f6064654653dd Zappa Event: {'manage': 'create_pg_db'}
No module named 'django': ModuleNotFoundError
Traceback (most recent call last):
  File "/var/task/handler.py", line 580, in lambda_handler
    return LambdaHandler.lambda_handler(event, context)
  File "/var/task/handler.py", line 248, in lambda_handler
    return handler.handler(event, context)
  File "/var/task/handler.py", line 399, in handler
    from django.core import management
ModuleNotFoundError: No module named 'django'
[END] RequestId: c621321b9-611d-4457-9c23-f65465653dd
[REPORT] RequestId: c621321b9-611d-4457-9c23-f65465653dd
Duration: 1.85 ms
Billed Duration: 100 ms 
Memory Size: 512 MB
Max Memory Used: 512 MB

Error: Unhandled error occurred while invoking command.

person Samir Tendulkar    schedule 27.01.2019    source источник
comment
Разве это не должно быть zappa manage production create_pg_db? Как на сцену должна прийти команда? github.com/Miserlou/ zappa-django-utils / blob / master /   -  person Milan Cermak    schedule 27.01.2019
comment
@MilanCermak Я пробовал, см. Вывод выше   -  person Samir Tendulkar    schedule 28.01.2019
comment
Я недостаточно знаю о zappa, чтобы помочь вам здесь, но кажется, что django недоступен в контейнере Lambda - как вы упаковали и развернули свое приложение? Проверьте, доступен ли там django.   -  person Milan Cermak    schedule 28.01.2019


Ответы (1)


У вас есть только один определенный этап, который называется производство. Если вы хотите назвать свою стадию create_pg_db, тогда она должна выглядеть так:

{
    "create_pg_db": {
        "aws_region": "us-east-1",
        "django_settings": "Cool.settings",
        "profile_name": "default",
        "project_name": "cool",
        "runtime": "python3.6",
        "s3_bucket": "cool-7dsfsdf5",
        "project_directory": "/tmp/code",
        "slim_handler": true,
        "vpc config": {
            "SubnetIds": [
                "subnet-3132ss13b",
                "subnet-321321319",
                "subnet-2c2313223",
                "subnet-5ljlkjljd",
                "subnet-132121357",
                "subnet-f925f9c7"
            ],
            "SecurityGroupIds": [
                "sg-a9asdasd"
            ]
        }
    },
    "production_ap_northeast_1": {
        "aws_region": "ap-northeast-1",
        "extends": "production"
    },
    "production_ap_northeast_2": {
        "aws_region": "ap-northeast-2",
        "extends": "production"
    },
    ... All regions...

    "production": {
        "aws_region": "us-east-1",
        "django_settings": "Cool.settings"
    ... MORE settings...    
}

В конце вы можете добавить дополнительные этапы, а затем использовать этап для развертывания. Например, у вас может быть этап разработки, на котором ваш код развертывается в среде разработки, и этап production, который развертывает ваш код в производственной среде.

person Rene B.    schedule 18.06.2019