2
을 통해 nodejs 코드에서 dynamodb에 액세스 할 수 없습니다.이 테스트를 lambda에서 시도했지만 진행할 수 없습니다.lambda
var Alexa = require("alexa-sdk");
var dynamoDBConfiguration = {
"accessKeyId": "useraccess",
"secretAccessKey": "usersecretkey",
"region": "us-east-1"
};
var AWS = require("aws-sdk");
AWS.config.update(dynamoDBConfiguration);
var promisify = require("es6-promisify");
var dynClient = new AWS.DynamoDB.DocumentClient({"region":"us-east-
1"});
//convert callback style functions to promises
const dbGet = promisify(dynClient.get,dynClient);
const dbPut = promisify(dynClient.put,dynClient);
const dbDelete = promisify(dynClient.delete,dynClient);
var startStateHandlers = (GAME_STATES.STARt, {
"StartGame": function (isNewGame,context) {
const dynamoParams = {
TableName: "Userdata",
Key: {
"UserId":"test"
}
}
dbGet(dynamoParams)
.then(data => {
console.log('Get user succeeded', data);
const userId = data.UserId;
if (userId != null) {
console.log(data.UserName);
}
else {
// no match, add the user
return dbPut(dynamoParams);
}
})
.then(data => {
console.log('Add user succeeded', data);
})
.catch(err => {
console.error(err);
});
this.emit(":tell", speechOutput, speechOutput);
}
});
var handlers = {
"LaunchRequest": function() {
var speechOutput = "hello";
this.emit(":tell", speechOutput, speechOutput);
}
};
var handler = (function() {
function handler(event, context, callback) {
var alexa = Alexa.handler(event, context);
alexa.appId = "appid";
alexa.registerHandlers(handlers, startStateHandlers);
alexa.execute();
}
return handler;
})();
exports.handler = handler;
lamda 로그에 오류가 발생하지 않으며 Cloudwatch에서 로그를 볼 수 없습니다. 다른 코드 행을 실행하기 만하면됩니다.
모든 권한 정책을 사용자에게 첨부하고 lamda 함수를 lambda_dynamo로 설정했습니다.
문제가 무엇인지 이해할 수 없습니다.
감사합니다.
죄송합니다. 편집하는 동안 그 행을 놓쳤습니다. 나는 코드에서 그것을 가지고 있지만 아무것도 바뀌지 않았다. –