2015-10-20 2 views
1

J'utilise le code suivant pour ingérer des données dans DynamoDB.La demande de mise à jour de noeud.js AWS DynamoDB ne met pas de données dans la table Dynamo

Code pour lire Kinesis

var AWS = require("aws-sdk"), 
DOC = require("dynamodb-doc"); 
docClient = new DOC.DynamoDB(); 

function upsert(result) { 
    var info = new Info(result); 
    console.log('Within upsert :', info.AcctNo); 
    docClient.putItem({ 
     TableName: "test_lamda_dynamo_table", 
     Item: info 
    }, function(err, data) { 
     if (err) { 
     console.error('error', err); 
     context.done('error', err); 
     } else { 
     console.log('success', data); 
     context.done('success', event.Records); 
     } 
    }); 
} 

Je ne suis pas en mesure de voir gestionnaire d'erreurs sysouts dans les journaux de CloudWatch aussi bien que je ne suis pas en mesure de voir les données dans DynamoDB.

Ci-dessous sont les journaux échantillons de CloudWatch

"Within upsert Info: 1234456" 

Je ne suis pas en mesure de voir les journaux d'erreurs liés à la fonction PutItem dans les journaux de fonction CloudWatch lambda.

Veuillez suggérer ce que je fais mal ici.

+0

Avez-vous testé votre fonction lambda pour vérifier si toutes les étapes se déroulent bien? –

+0

J'ai vérifié la même chose avec Get request. Je suis capable de lire les données de Dynamo en utilisant la même fonction lambda. –

+0

Il existe un moyen de tester la fonction lambda elle-même en appuyant sur le bouton 'test', elle exécutera la fonction et vous donnera le journal. Vous pouvez le faire et voir ce que 'console.log' vous donne –

Répondre

2

J'ai trouvé une solution pour ce problème sur le lien ci-dessous.

Querying DynamoDB with Lambda does nothing

Ce fut à cause de l'appel context.succeed utilisé dans le gestionnaire lambda ainsi.

exports.handler = function(event, context) { 

    event.Records.forEach(function(record) { 
    try { 
     var payload = new Buffer(record.kinesis.data, 'base64').toString('ascii'); 

     console.log('Decoded payload:', payload); 

     upsert(payload, context); 

     // bug 
     context.succeed("Success") 

    } catch (e) { 
     // log error and continue 
     console.error('Error occured while inserting messages to Dynamo' + e); 
    } 
    }); 
};