Вы не должны определять каждый атрибут, который хотите использовать заранее при создании таблицы.
attribute
блоков внутри aws_dynamodb_table
ресурсов не определяют, какие атрибуты вы можете использовать в своем приложении. Они определяют схему ключа для таблицы и индексов .
Например, следующий Terraform определяет таблицу только с хеш-ключом:
resource "aws_dynamodb_table" "test" {
name = "test-table-name"
read_capacity = 10
write_capacity = 10
hash_key = "Attribute1"
attribute {
name = "Attribute1"
type = "S"
}
}
Каждый элемент в этой таблице имеет Attribute1
, но вы можете создавать дополнительные атрибуты с вашим приложением
Это означает, что вы можете иметь свои 10+ атрибутов, если вам не нужно определять их в AttributeDefinition
, и, поскольку вы говорите, что они не нужны для индексации, все будет в порядке.
Для некоторого обсуждения путаницы (attribute
сбивает с толку и не соответствует API DynamoDB), см. этот запрос на извлечение .