Skip to content

Instantly share code, notes, and snippets.

@99darwin
Last active June 12, 2019 01:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 99darwin/8e1fd05b560df0fc1aa241381215f90d to your computer and use it in GitHub Desktop.
Save 99darwin/8e1fd05b560df0fc1aa241381215f90d to your computer and use it in GitHub Desktop.
Add new Amazon Cognito users to DynamoDB with Lambda
var aws = require('aws-sdk');
var ddb = new aws.DynamoDB({apiVersion: '2012-10-08'});
exports.handler = async (event, context) => {
console.log(event);
let date = new Date();
const tableName = process.env.TABLE_NAME;
const region = process.env.REGION;
const defaultAvi = 'https://YOUR/DEFAULT/IMAGE';
console.log("table=" + tableName + " -- region=" + region);
aws.config.update({region: region});
// If the required parameters are present, proceed
if (event.request.userAttributes.sub) {
// -- Write data to DDB
let ddbParams = {
Item: {
'id': {S: event.request.userAttributes.sub},
'__typename': {S: 'User'},
'picture': {S: defaultAvi},
'username': {S: event.userName},
'name': {S: event.request.userAttributes.name},
'skillLevel': {N: '0'},
'email': {S: event.request.userAttributes.email},
'createdAt': {S: date.toISOString()},
},
TableName: tableName
};
// Call DynamoDB
try {
await ddb.putItem(ddbParams).promise()
console.log("Success");
} catch (err) {
console.log("Error", err);
}
console.log("Success: Everything executed correctly");
context.done(null, event);
} else {
// Nothing to do, the user's email ID is unknown
console.log("Error: Nothing was written to DDB or SQS");
context.done(null, event);
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment