Django Zappa部署的帮助程序
zappa-django-utils的Python项目详细描述
Zappa Django实用程序
使django应用程序的Zappa部署稍微容易一些的小实用程序。
这个项目的灵感来自埃德加·罗曼的Zappa Django Guide。
安装
通过pip
:
$ pip install zappa-django-utils
添加到已安装的应用程序:
INSTALLED_APPS += ('zappa_django_utils',)
用法
使用支持s3的数据库引擎
zdu包含使用s3sqlite
,即S3-synced SQLite database作为django数据库引擎的功能。
这将给并发写入的应用程序带来问题**,但对于没有并发写入的高读取应用程序(如cmse),它的扩展性非常好,而且比aws rds便宜几个数量级。
**并发写操作通常会丢失,并且不会显示在并发读卡器中。这是因为每个请求的数据库都是在s3存储和lambda实例之间传输的。
django设置和命令
DATABASES={'default':{'ENGINE':'zappa_django_utils.db.backends.s3sqlite','NAME':'sqlite.db','BUCKET':'your-db-bucket'}}
还有…就是这样!由于sqlite将数据库保存在一个文件中,因此您将希望使其尽可能小并对其进行碎片整理。偶尔执行数据库真空是很好的,特别是在删除或更新数据之后。有一个命令可以清空数据库:
zappa manage [instance] s3sqlite_vacuum
创建Postgres数据库
设置好rds、vpc/子网/安全组以及DATABASES
设置后,可以使用以下命令创建数据库:
$ zappa manage <stage> create_pg_db
那你就准备好了python manage.py makemigrations
和zappa update; zappa manage migrate
!
创建默认管理员用户
您可能需要一个默认用户来管理您的应用程序,因此您现在可以:
$ zappa manage <stage> create_admin_user
或者您可以传递一些参数:
$ zappa manage <stage> create_admin_user one two three
这将在内部呼叫:
User.objects.create_superuser('one','two','three')
现在登录并立即更改管理员用户的电子邮件和密码。
创建/删除Postgres架构
您可以使用:
创建Postgres schema$ zappa manage create_pg_schema
放在下面:
$ zappa manage drop_pg_schema
许可证
(c)2017年,Rich Jones,麻省理工学院执照