Simple Lambda Insert to DynamoDB


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.

 

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.