0

我有一个 AWS Lambda 函数(通过无服务器部署的 NodeJS 12.x),它应该从 AWS Keyspaces 表中返回一些记录。我正在使用 cassandra-driver (npm i cassandra-driver)。

当我通过 Lambda 函数运行查询时,它只返回 44 行(不正确,太少)。没有错误。

当我在 AWS 的 CQL 图形控制台(或 CQLsh)中运行 EXACT SAME 查询时,它返回所有 74 行(正确)

该表将“deviceid”(文本)作为主键,将“abstime”(bigint DESC)和“createdon”(bigint ASC)作为集群列。作为旁注,我将此设置用于其他没有问题的查询/表。任何想法,请帮助/谢谢。查询是这样的:

SELECT * FROM "KS"."mytable" WHERE "deviceid" = 'ABCDEFGH' AND "entrytype"='event' AND "abstime" > 1635947939 ORDER BY "abstime" ASC ALLOW FILTERING;

Lambda 中的重要代码是:

const cassandra = require('cassandra-driver');
const auth = new cassandra.auth.PlainTextAuthProvider('cassandrauser-at-123456789012', 'my-hidden-key');
const sslOptions1 = {
    ca: [
        "sf-class2-root.crt", 'utf-8')],
    host: ('cassandra.us-east-1.amazonaws.com'),
    rejectUnauthorized: true
};
const cass_client = new cassandra.Client({
    contactPoints: [('cassandra.us-east-1.amazonaws.com')],
    localDataCenter: 'us-east-1',
    authProvider: auth,
    sslOptions: sslOptions1,
    protocolOptions: { port: cons.KEYSPACE_PORT }
});
var readResult = await cass_client.execute(query, [], { consistency: 6, prepare: true, autoPage: true });
console.log(readResult.rowLength); // returns only 44
4

0 回答 0