【问题标题】:I cannot query my dynamodb table from aws lambda due to wrong filterexpression?由于错误的过滤器表达式,我无法从 aws lambda 查询我的 dynamodb 表?
【发布时间】:2020-08-24 08:36:43
【问题描述】:

我似乎无法通过 lambda 查询我的 dynamodb。错误信息显示: 错误无法扫描表。错误 JSON: { "message": "Invalid FilterExpression: 表达式中使用的表达式属性值未定义;属性值: :coloursavailable", 我的代码如下:

async function dispatch(intentRequest, callback) {
    
const aws = require('aws-sdk');
    aws.config.update({region: 'xxx'});
    var ddb = new aws.DynamoDB();
    var ddbDocClient = new aws.DynamoDB.DocumentClient()
    
    async function getCost(colour,size) {
        var params ={
        TableName : "XXX",
        ProjectionExpression:"Cost",
        FilterExpression: "coloursavailable = :coloursavailable and sizesavailable = :sizesavailable",
        ExpressionAttributeValues:{ ":coloursavailable" : colour,  ":sizesavailable": size}
        }
    return new Promise(resolve =>{
         ddbDocClient.scan(params, onScan)
    
    function onScan(err, data) {
    if (err) {
        console.error("Unable to scan the table. Error JSON:", JSON.stringify(err, null, 2));
    } else {
        data.Items.forEach(function(item) {
           resolve(item.Cost);
        });

    }
}   
    })

    } 

提前致谢!

【问题讨论】:

    标签: amazon-web-services aws-lambda dynamodb-queries


    【解决方案1】:

    您不能在不指定特定哈希键的情况下对表使用查询方法。代替使用的方法是扫描。所以如果你更换:

    x = tab.query() 与

    x = tab.scan() 我得到了我桌子上的所有物品。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-13
      • 2020-08-29
      • 2019-11-19
      • 2020-10-23
      • 1970-01-01
      • 1970-01-01
      • 2019-07-26
      • 1970-01-01
      相关资源
      最近更新 更多