У меня есть простая таблица DynamoDB с ключом Ha sh и индексом
Таблица:
Когда я сделать это:
DescribeTableResponse descResponse = _dynamoDbClient.DescribeTable(new DescribeTableRequest
{TableName = "bank-statements"});
tableDescription = descResponse.Table;
затем
- tableDescription.AttributeDefinitions.Count = 2. 2 элемента - это ключ и индекс
- tableDescription.KeySchema. Count = 1. 1 элемент - это ключ
Затем я использую tableDescription, чтобы воссоздать таблицу, выполнив следующее:
CreateTableRequest createTableRequest = new CreateTableRequest
{
TableName = tableDescription.TableName,
AttributeDefinitions = tableDescription.AttributeDefinitions,
KeySchema = tableDescription.KeySchema,
ProvisionedThroughput = new ProvisionedThroughput
{
ReadCapacityUnits = tableDescription.ProvisionedThroughput.ReadCapacityUnits,
WriteCapacityUnits = tableDescription.ProvisionedThroughput.WriteCapacityUnits
}
};
CreateTableResponse response = _dynamoDbClient.CreateTable(createTableRequest);
Однако это приводит к ошибке:
Одно или несколько значений параметров были недопустимыми: количество атрибутов в KeySchema точно не соответствует количеству атрибутов, определенных в AttributeDefinitions
Это верно, но означает либо
- возвращаемые данные неверны
- Ошибка неверна, поскольку таблица явно не нуждается в этом straint
Что можно сделать, чтобы использовать DescribeTableResponse для повторного создания таблицы?