Node.js DynamoDB查询在Lambda函数中不返回任何项

Node.js DynamoDB查询在Lambda函数中不返回任何项,node.js,amazon-dynamodb,aws-lambda,Node.js,Amazon Dynamodb,Aws Lambda,基本上,我在Lambda函数中有一个DynamoDB连接。将在下面发布代码。这个DynamoDB连接似乎运行正常-它能够成功调用listTable和Descriptable函数,这意味着它得到了正确的配置-但是查询它不会返回任何结果,即使是我知道是正确的并且已经在Dynamo控制台上测试过的查询 更新:能够使用单独索引上的字符串成功查询,但仍然无法基于二进制 以下是Lambda函数的一部分: const AWS = require('aws-sdk'); const SNS = new AWS

基本上,我在Lambda函数中有一个DynamoDB连接。将在下面发布代码。这个DynamoDB连接似乎运行正常-它能够成功调用listTable和Descriptable函数,这意味着它得到了正确的配置-但是查询它不会返回任何结果,即使是我知道是正确的并且已经在Dynamo控制台上测试过的查询

更新:能够使用单独索引上的字符串成功查询,但仍然无法基于二进制

以下是Lambda函数的一部分:

const AWS = require('aws-sdk');

const SNS = new AWS.SNS({ apiVersion: '2010-03-31', region: 'sa-east-1' });
const DDB = new AWS.DynamoDB({ apiVersion: '2012-08-10', region: 'sa-east-1' })
const Lambda = new AWS.Lambda({ apiVersion: '2015-03-31' });

const async = require('async');

const CREATE_NOTIFICATIONS = 'create-notifications'
const QUERY_TOKENS = 'query-tokens'

function getUsers(functionName, message, callback) {
    var msg = JSON.parse(message);
    var users = [];
    console.log(DDB);
    async.forEachOf(msg.targetsb64, function(value, index, cb) {
        console.log("getUsers b64: ", value)
        console.log(typeof(value))
        DDB.describeTable({
            TableName: 'tsGroups'
        }, function(err, data) {
            console.log(err)
            console.log(data.Table.KeySchema)
        })
        DDB.query({
            TableName: 'tsGroups',
            KeyConditionExpression: "identifier = :v_user",
            ExpressionAttributeValues: {
                ":v_user": {"B": value}
            }
        }, function(err, data) {
            if (err) {
                cb(err)
            } else {
                console.log("data: ", data)
                console.log("items: ", data.Items)
                data.Items.forEach(function(item) {
                    users.push.apply(users, item.users.BS)
                })
                cb()
            }
        })
    }, function(err) {
        if (err) {
            callback(err)
        } else {
            console.log("getUsers users: ", users);
            const promises = users.map((user) => invokeQueryTokens(functionName, msg, user));
            Promise.all(promises).then(() => {
                const result = `Users messaged: ${users.length}`;
                console.log(result);
                callback(null, result);
            });
        }
    })
}
我尝试使用KeyConditions而不是KeyConditionExpression,但没有效果。Value指的是一个base64标识符字符串,它是从前面的Lambda函数传递过来的-我已经尝试过对正确的值进行编码,但没有帮助。可描述的函数仅用于详细说明DynamoDB是否正确连接,以及是否在正确的区域

TL;DR:上述代码段中的data.Items值始终是空数组,即使在执行我知道应该返回某些内容的查询时也是如此。我的错误是什么

谢谢,干杯