Skip to content

amrael/django-dynamodb2-sessions

 
 

Repository files navigation

django-dynamodb2-sessions

Info:Sessions backend dedicated for Django uses Amazon DynamoDB v.2 for data storage.
Author: Justine Żarna

If You need backend uses Amazon DynamoDB v. 1 see Greg Taylor github

First step: create DynamoDB Table

Visit your DynamoDB tab in the AWS Management Console and follow instructions:

  • Choose the Create Table option.
  • Enter your sessions table name (example: sessions).
  • Select Primary Key Type = Hash.
  • Select Hash Attribute Type as String.
  • Enter session_key for Hash Attribute Name.
  • Choose the Continue option twice.
  • Fill Provisioned Throughput Capacity (only for tests: read - 10 units, write - 5 units).
  • Choose the Continue option.
  • Choose the Create option.

Second step: installation

Install django-dynamodb2-sessions using pip:

pip install django-dynamodb2-sessions

Export your AWS key and secret key as environment variables because of security:

export AWS_ACCESS_KEY_ID='YourKey'
export AWS_SECRET_ACCESS_KEY='YourSecretKey'
export AWS_REGION_NAME = 'YourRegion'

In your settings.py file, you'll need set variables:

import os
AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID', '') # set Your AWS key
AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY', '') # set Your AWS secret key
AWS_REGION_NAME = os.environ.get('AWS_REGION_NAME', '') # set Your AWS region

DYNAMODB_SESSIONS_TABLE_NAME = '' # set Your sessions table name

Set your session backend to:

SESSION_ENGINE = 'dynamodb2_sessions.backends.cached_dynamodb'

or:

SESSION_ENGINE = 'dynamodb2_sessions.backends.dynamodb'

Optional you can set always consistent parametr. If you are not using cache to this sessions backend you can force all reads from Dynamodb by setting True. Default: False:

DYNAMODB_SESSIONS_ALWAYS_CONSISTENT = False

Versions

0.1

  • Initial release.

0.2

  • Added removing expired sessions command management.

0.3

  • Added new version of boto to requirements

License

django-dynamodb2-sessions is licensed under the BSD License.

About

Sessions backend dedicated for Django uses Amazon DynamoDB v.2

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%