DynamoDB.putitem 不向 DynamoDB 表添加参数?



我的lambda函数使用该方法

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

我的参数被正确格式化到我的表格中。我的日志中未显示任何错误,但日志中也没有显示"已提交数据",并且数据不会放入我的 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;
};

谢谢

请检查此代码以在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);
}
});

最新更新