Package: dj-dynamodb-sessions
Info:This package contains a simple Django session backend that uses
Amazon’sDynamoDBfor data storage.Author:Greg TaylorStatus:Stable, but un-maintained (Open an issue if interested in maintaining!)Statusdjango-dynamodb-sessions has seen some use on small test environments within
EC2. While it should be ready for prime time, it hasn’t been heavily battle
tested just yet. Other notes:There is currently no management command to remove expired sessions. We
can’t re-use the Django cleanup command, so we’ll have to write our own.
This will be added in the next release, we’re already setting expiration
attributes to drive the cleanup.Set up your DynamoDB TableBefore you can use this module, you’ll need to visit yourDynamoDB tabin the AWS Management Console. Then:Hit theCreate Tablebutton.Entersessionsas your table name. This can be something else, you’ll
just need to adjust thesettings.DYNAMODB_SESSIONS_TABLE_NAMEvalue
accordingly.Select Primary Key Type =Hash.Select aStringhash attribute type.Entersession_keyforHash Attribute Name.Hit theContinuebutton.Decide on throughput. The free tier is 10 read capacity units, 5 write.Finish the rest of the stepsAfter your table is created, you’re ready to install the module on your
Django app.InstallationInstall django-dynamodb-sessions usingpiporeasy_install:pip install django-dynamodb-sessionsIn yoursettings.pyfile, you’ll need something like this:DYNAMODB_SESSIONS_AWS_ACCESS_KEY_ID = 'YourKeyIDHere'
DYNAMODB_SESSIONS_AWS_SECRET_ACCESS_KEY = 'YourSecretHere'If you’d like to add a caching layer between your application and DynamoDB
to reduce queries (like Django’s cached_db backend), set your session
backend to:SESSION_ENGINE = 'dynamodb_sessions.backends.cached_dynamodb'Otherwise, go straight to DynamoDB:SESSION_ENGINE = 'dynamodb_sessions.backends.dynamodb'After that, fire her up and keep an eye on your Amazon Management Console
to see if you need to scale your read/write units up or down.If you encounter any bugs, have questions, or would like to share an idea,
hit up ourissue tracker.ConfigurationThe following settings may be used in yoursettings.py:DYNAMODB_SESSIONS_TABLE_NAME:The table name to use for session data storage.
Defaults tosessions.DYNAMODB_SESSIONS_TABLE_HASH_ATTRIB_NAME:The hash attribute name on your
session table. Defaults
tosession_keyDYNAMODB_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 toTrue.DYNAMODB_SESSIONS_BOTO_SESSION:Used instead of providing access_key and
region, theboto3.session.Sessioncontaining authentication for the AWS account
to use for DynamoDB.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.Changes0.7Switch to boto3 rather than boto for AWS access.Allow passing of boto3 session rather than AWS credentials.0.6Removing some no longer used imports.PEP8 cleanup.0.5Replacing self.session_key with self._session_key in the backend. (AdamN)0.4Django 1.4 compatibility, and unnecessary code removal. (AdamN)0.3Re-packaging with setuptools instead of distutils.0.2Correcting an issue with the cached_dynamodb backend.0.1Initial release.Licensedjango-dynamodb-sessions is licensed under theBSD License.