DynamoDB.putitem没有向DynamoDB表添加参数?

时间:2018-09-15 20:22:47

标签: aws-lambda amazon-dynamodb alexa alexa-skills-kit amazon-dynamodb-streams

我的lambda函数使用方法

ddb.putItem(params, function(err, data) {
 if (err) console.log(err, err.stack); // an error occurred
 else     console.log("SUBMITTED DATA");           // successful response
 });

,将我的参数正确设置为表格格式。我的日志中没有显示错误,但是“ SUBMITTED DATA”也没有出现在日志中,并且数据也没有放入我的DynamoDB表中。关于可能导致此问题的任何想法吗?这是我完整的功能:

const TrackHabitIntentHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'IntentRequest'
&& handlerInput.requestEnvelope.request.intent.name === 'TrackHabitIntent';
},
handle(handlerInput) {
ddb.putItem(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log("SUBMITTED DATA");           // successful response

});
const speechText = "That's awesome! I'll add today to your streak of 4 days";



return handlerInput.responseBuilder
  .speak(speechText)
  .reprompt(speechText)
  .withSimpleCard('Hello World', speechText)
  .getResponse();
}};

exports.handler =  function (event, context) {
if (!skill) {
skill = Alexa.SkillBuilders.custom()
  .addRequestHandlers(
    LaunchRequestHandler,
    HelpIntentHandler,
    HelpMeIntentHandler,
    TrackHabitIntentHandler,
    NewHabitIntentHandler,
    CancelAndStopIntentHandler,
    SessionEndedRequestHandler,
  )
  .addErrorHandlers(ErrorHandler)
  .create();
 }
 return response;
 };

谢谢

1 个答案:

答案 0 :(得分:0)

请检查此代码以在 dynamoDB 中添加数据,以帮助您。

let putParams = {
        TableName: tableName,
        Item: {
          'Id': {
            S: Id
          },
          'name': {
            S: name
          }
        },
        ConditionExpression: 'attribute_exists(Id)'
      };

      dynamoDb.putItem(putParams, function (err, data) {
        if (err) {
          console.log('failure:put data from Dynamo error', err);
          reject(err);
        } else {
          console.log('success:put data from Dynamo data');
          resolve(data);
        }
      });