使用amazon的dynamodb的django会话后端
django-dynamodb-sessions的Python项目详细描述
Info: | This package contains a simple Django session backend that uses Amazon’s DynamoDB for data storage. |
---|---|
Author: | Greg Taylor |
状态
django dynamodb会话在 EC2号。虽然它应该为黄金时段做好准备,但它并没有经历过激烈的战斗 刚刚测试过。其他注意事项:
- 当前没有删除过期会话的管理命令。我们 无法重用django cleanup命令,因此我们必须编写自己的命令。 这将在下一版本中添加,我们已经设置了过期时间 用于驱动清理的属性。
设置dynamodb表格
在使用此模块之前,您需要访问DynamoDB tab 在AWS管理控制台中。然后:
- 点击create table按钮。
- 输入sessions作为表名。这可能是别的,你会 只需要调整settings.DYNAMODB_SESSIONS_TABLE_NAME值 因此。
- 选择主键类型=Hash。
- 选择String哈希属性类型。
- 输入session_key作为哈希属性名。
- 按continue按钮。
- 决定吞吐量。空闲层是10个读容量单元,5个写容量单元。
- 完成其余步骤
创建表后,就可以在 Django应用程序。
安装
使用pip或easy_install安装django dynamodb会话:
pip install django-dynamodb-sessions
在您的settings.py文件中,您需要这样的文件:
DYNAMODB_SESSIONS_AWS_ACCESS_KEY_ID = 'YourKeyIDHere' DYNAMODB_SESSIONS_AWS_SECRET_ACCESS_KEY = 'YourSecretHere'
如果您想在应用程序和dynamodb之间添加一个缓存层 若要减少查询(如django的缓存数据库后端),请设置会话 后端到:
SESSION_ENGINE = 'dynamodb_sessions.backends.cached_dynamodb'
否则,直接转到dynamodb:
SESSION_ENGINE = 'dynamodb_sessions.backends.dynamodb'
在那之后,把她炒鱿鱼,盯着你的亚马逊管理控制台 查看是否需要放大或缩小读/写单位。
如果你遇到任何错误,有问题,或想分享一个想法, 打我们的issue tracker。
配置
您的settings.py中可以使用以下设置:
DYNAMODB_SESSIONS_TABLE_NAME: | |
---|---|
The table name to use for session data storage. Defaults to ^{tt1}$. | |
DYNAMODB_SESSIONS_TABLE_HASH_ATTRIB_NAME: | |
The hash attribute name on your session table. Defaults to ^{tt5}$ | |
DYNAMODB_SESSIONS_ALWAYS_CONSISTENT: | |
If you’re not using this session backend behind a cache, you may want to force all reads from DynamoDB to be consistent. This may lead to slightly slower queries, but you’ll never miss object creation/edits. Defaults to ^{tt12}$. | |
DYNAMODB_SESSIONS_AWS_ACCESS_KEY_ID: | |
The access key for the AWS account to use for DynamoDB. | |
DYNAMODB_SESSIONS_AWS_SECRET_ACCESS_KEY: | |
The secret for the AWS account to use for DynamoDB. | |
DYNAMODB_SESSIONS_AWS_REGION_NAME: | |
The region to use for DynamoDB. |
更改
0.6
- 删除一些不再使用的导入。
- PEP8清理。
0.5
- 在后端用self.\u session\u密钥替换self.session\u密钥。(adamn)
0.4
- django 1.4兼容性,以及不必要的代码删除。(adamn)
0.3
- 使用setuptools而不是distutils重新打包。
0.2
- 正在更正缓存的\u dynamodb后端的问题。
0.1
- 初次发布。
许可证
django dynamodb会话是根据BSD License授权的。