使用亚马逊DynamoDB的Django会话后端
项目描述
- 信息:
此软件包包含一个简单的Django会话后端,它使用亚马逊的DynamoDB进行数据存储。
状态
django-dynamodb-sessions已在EC2的小型测试环境中使用。虽然它应该已经准备好投入使用,但尚未经过大量的实战测试。其他注意事项
目前没有管理命令可以删除过期的会话。我们无法重用Django清理命令,因此我们需要编写自己的。这将在下一个版本中添加,我们已经在设置过期属性以驱动清理。
设置您的DynamoDB表
在您可以使用此模块之前,您需要访问AWS管理控制台中的DynamoDB标签页。然后
点击“创建表”按钮。
输入sessions作为您的表名。这可以是其他名称,您只需相应地调整settings.DYNAMODB_SESSIONS_TABLE_NAME的值。
选择主键类型 = Hash。
选择一个String哈希属性类型。
将session_key输入为哈希属性名称。
点击“继续”按钮。
决定吞吐量。免费层是10个读取容量单元,5个写入。
完成其余步骤
在您的表创建后,您就可以在Django应用程序上安装该模块了。
安装
使用 pip 或 easy_install 安装 django-dynamodb-sessions
pip install django-dynamodb-sessions
在你的 settings.py 文件中,你需要类似以下内容
DYNAMODB_SESSIONS_AWS_ACCESS_KEY_ID = 'YourKeyIDHere' DYNAMODB_SESSIONS_AWS_SECRET_ACCESS_KEY = 'YourSecretHere'
如果你想在应用程序和 DynamoDB 之间添加一个缓存层以减少查询(例如 Django 的 cached_db 后端),请设置会话后端为
SESSION_ENGINE = 'dynamodb_sessions.backends.cached_dynamodb'
否则,直接使用 DynamoDB
SESSION_ENGINE = 'dynamodb_sessions.backends.dynamodb'
之后,启动它并密切关注你的 Amazon 管理控制台,看看是否需要调整读写单元。
如果你遇到任何错误,有任何问题,或者想要分享一个想法,请访问我们的 问题追踪器。
配置
以下设置可以在你的 settings.py 中使用
- DYNAMODB_SESSIONS_TABLE_NAME:
用于会话数据存储的表名。默认为 sessions。
- DYNAMODB_SESSIONS_TABLE_HASH_ATTRIB_NAME:
会话表上的哈希属性名。默认为 session_key
- DYNAMODB_SESSIONS_ALWAYS_CONSISTENT:
如果你没有在缓存后面使用此会话后端,你可能希望强制所有 DynamoDB 读取都保持一致。这可能会导致查询略微变慢,但你永远不会错过对象创建/编辑。默认为 True。
- DYNAMODB_SESSIONS_AWS_ACCESS_KEY_ID:
用于 DynamoDB 的 AWS 账户的访问密钥。
- DYNAMODB_SESSIONS_AWS_SECRET_ACCESS_KEY:
用于 DynamoDB 的 AWS 账户的秘密。
- DYNAMODB_SESSIONS_AWS_REGION_NAME:
用于 DynamoDB 的区域。
变更
0.6
删除了一些不再使用的导入。
PEP8 清理。
0.5
在后端中将 self.session_key 替换为 self._session_key。(AdamN)
0.4
与 Django 1.4 兼容,并删除了不必要的代码。(AdamN)
0.3
使用 setuptools 而不是 distutils 重新打包。
0.2
修复了 cached_dynamodb 后端的问题。
0.1
初始发布。
许可证
django-dynamodb-sessions 在 BSD 许可证 下发布。
项目详情
下载文件
下载适用于您的平台文件。如果您不确定选择哪一个,请了解更多关于 安装软件包 的信息。
源分发
django-dynamodb-sessions-0.6.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b82c04b0fab27e7340fadb50451e3ede2b72ce0edb3807a365b70943f5de5132 |
|
MD5 | bfe73856916bfe781e7ee1190aee2aaa |
|
BLAKE2b-256 | f1b658ceba324b16ecc3391cb7405e9c15a5a2c9d6faf4f6783ed75a4075c9b2 |