Я создаю таблицу и GSI в dynamo, используя эти параметры, согласно документации:
configId является основным ключом таблицы, и я использую publisherId как первичный ключ для GSI. (Я сократил некоторые ненужные параметры конфигурации для краткости)
var params = {
TableName: 'Configs',
KeySchema: [
{
AttributeName: 'configId',
KeyType: 'HASH',
}
],
AttributeDefinitions: [
{
AttributeName: 'configId',
AttributeType: 'S',
},
{
AttributeName: 'publisherId',
AttributeType: 'S',
}
],
GlobalSecondaryIndexes: [
{
IndexName: 'publisher_index',
KeySchema: [
{
AttributeName: 'publisherId',
KeyType: 'HASH',
}
]
}
]
};
Я запрашиваю эту таблицу, используя следующую команду:
{ TableName: 'Configs',
IndexName: 'publisher_index',
KeyConditionExpression: 'publisherId = :pub_id',
ExpressionAttributeValues: { ':pub_id': { S: '700' } } }
но я продолжаю получать ошибку: "ValidationException: одно или несколько значений параметра были недопустимыми: тип параметра условия не соответствует типу схемы"
В документах указывается, что первичный KeyType может быть HASH или RANGE, и что вы устанавливаете атрибутType в поле attributeDefinitions. Я отправляю publisherId как String, не уверен, что я здесь отсутствует.
Является ли проблема в способе создания таблицы или способа запроса? Благодаря