Запрос индекса в DynamoDB приводит к ошибке первичного ключа - PullRequest
0 голосов
/ 27 апреля 2018

Мне сложно запросить GSI на столе. Пример кода ниже приводит к ошибке ключа, которая относится к первичному ключу, несмотря на то, что я использую индекс.

Определение таблицы:

TableName : config.user_table,
KeySchema: [       
    { AttributeName: "user", KeyType: "HASH"}
],
AttributeDefinitions: [       
    { AttributeName: "user", AttributeType: "S" },
    { AttributeName: "activation_code", AttributeType: "S" },
],
GlobalSecondaryIndexes: [
    {
        IndexName: "activation_code_index",
        KeySchema: [
            {AttributeName: "activation_code", KeyType: "HASH"}
        ],
        Projection: {
            ProjectionType: "ALL"
        },
        ProvisionedThroughput: {
            "ReadCapacityUnits": 1,"WriteCapacityUnits": 1
        }
    }
],
ProvisionedThroughput: {       
    ReadCapacityUnits: 10, 
    WriteCapacityUnits: 10
}

Определение запроса:

var params = {
    TableName: config.user_table,
    IndexName: "activation_code_index",
    KeyConditionExpression: "activation_code = :code", 
    ExpressionAttributeValues: {
        ":code": code
    }
};
return dcl.query(params).promise();

Ошибка:

message: 'One or more parameter values were invalid: Missing the key user in the item',
code: 'ValidationException',
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...