AWS DynamoDB session middleware for Telegraf
AWS DynamoDB powered session middleware for Telegraf.
Prerequisites
- You have made your AWS access and secret key available through a provided method, like storing them in the ~/.aws/credentials file or export them into environment variables
- You need to install Node.js with a minimum version of 6.10.3
Installation
foo@bar:~$ yarn add telegraf-session-dynamodb
Example
const Telegraf = const DynamoDBSession = const bot = processenvBOT_TOKEN const dynamoDBSession = dynamoDBConfig: params: TableName: processenvAWS_DYNAMODB_TABLE region: processenvAWS_REGION bot bot bot
When you have stored the session key beforehand, you can access a session without having access to a context object. This is useful when you perform OAUTH or something similar, when a REDIRECT_URI is called on your bot server.
const dynamoDBSession = dynamoDBConfig: params: TableName: processenvAWS_DYNAMODB_TABLE region: processenvAWS_REGION // Retrieve session state by session keydynamoDBSession // Save session statedynamoDBSession
API
Options
dynamoDBConfig
:params
:TableName
: AWS DynamoDB Table to store session (default: telegraf-session-dynamodb)
region
: AWS Region (default: ap-northeast-1)
property
: context property name (default:session
)ttl
: Time To Live in minutes, -1 for never expire (default:-1
)getSessionKey
: session key resolver function(ctx) => any
)
Default implementation of getSessionKey
:
{ if !ctxfrom || !ctxchat return return `:`}
Destroying a session
To destroy a session simply set it to null
.
bot
Local Unit Testing
foo@bar:~$ yarn foo@bar:~$ yarn global add serverless foo@bar:~$ docker pull lambci/lambda foo@bar:~$ sls dynamodb install foo@bar:~$ sls offline start -r ap-northeast-1 --noTimeout & foo@bar:~$ yarn test:local
Remarks: TTL will NOT work for DynamoDB Local
Remote Unit Testing
- Create the AWS DynamoDB Table in the desired AWS Region
- Use
SessionKey (String)
as primary key - Set
ttl
as the TTL attribute in Manage TTL
foo@bar:~$ aws configure foo@bar:~$ yarn foo@bar:~$ yarn test