我正在尝试将DAX示例getitem-test.js作为lambda运行 . (doc link) . 我修改了代码以从我创建的daxclient中读取 . 但是daxClient.get从lambda返回错误
START RequestId:bb657a02-05b1-11e8-804d-a1d27ac0e9f7版本:$ LATEST 2018-01-30T11:36:03.363Z bb657a02-05b1-11e8-804d-a1d27ac0e9f7无法读取项目 . 错误JSON:{“time”:1517312163361,“code”:“ValidationException”,“retryable”:true,“requestId”:“AVI5QK8LN9S41B64JTTJVECLR3VV4KQNSO5AEMVJF66Q9ASUAAJG”,“statusCode”:“400”,“_ intInvalid”:false,“waitForRecoveryBeforeRetrying”:假的
我使用dynamodbclient设置了dynamo db表 . 设置VPC,子网等 . 但是我没有运气从DAX读取数据 . 知道可能是什么问题 .
以下是我使用的代码:
var region = "eu-west-1";
AWS.config.update({
region: region
});
var daxClient = null;
var dax = new AmazonDaxClient({ endpoints: ["mydax.e02jim.clustercfg.dax.euw1.cache.amazonaws.com:8111"], region: region })
daxClient = new AWS.DynamoDB.DocumentClient({ service: dax });
var tableName = "TryDaxTable";
var params = {
TableName: tableName,
Key: {
"pk": 7,
"sk": 1
}
};
daxClient.get(params, function (err, data) {
if (err) {
console.error("Unable to read item. Error JSON:",
JSON.stringify(err, null, 2));
} else {
console.log("success");
}
});
我可以使用 var ddbClient = new AWS.DynamoDB.DocumentClient()
而不是 daxClient
来获得结果 .
我的lambda函数也超时了
1 回答
发现这是一个许可问题 . 我的集群的IAM角色没有DynamoDB表的权限 .
关于lambda超时,我在谷歌搜索后最后添加了以下代码