Select Page

Buen dia ,

En este articulo les comparto como crear una funciòn Lambda la cual genera un simple insert a una base de datos Dynamodb.

Lo primero que debemos realizar es crear una tabla en Dynamodb , esta la llamaremos inserts y configuraremos la key con el nombre Data de tipo (ej:Number)

Ahora vamos a copiar el nombre de arn de la tabla y vamos a ingresar en IAM, dentro vamos a generar un nuevo rol llamado ‘simple_lamba_insert_dynamo’.

Y le vamos a asignar por default las politicas de aws AWSLambdaBasicExecutionRole and AmazonDynamoDBFullAccess, luego vamos a generar una nueva policita en linea con nuestro arn.

policy_simple_lambda_to_dynamo:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1507744968000",
            "Effect": "Allow",
            "Action": [
                "dynamodb:*"
            ],
            "Resource": [
                "arn:aws:dynamodb:us-west-2:881653854182:table/inserts"
            ]
        }
    ]
}

El role nos deberia quedar algo asi:

Ahora vamos a generar la funcion Lambda:

Luego ingresamos el siguiente codigo en la funcion y renombramos el handler como index.handle

console.log('starting function');

const AWS = require('aws-sdk');
const docClient = new AWS.DynamoDB.DocumentClient({region: 'us-west-2'});

exports.handle = function(event, context, callback) {

    var params = {
        Item: {
           Data: Date.now(),
           message: "Hello this is a simple Lambda function" 
        },

        TableName: 'inserts'
    };

    docClient.put(params, function(err, Data){
        if(err){
            callback(err, null);
        }else{
            callback(null, Data);    
        }
    });

};

Guardamos el event y le damos a Test. Si todo salio bien ya deberiamos tener datos dentro de nuestra base da datos DynamoDB.