У меня есть таблица, похожая на эту
account_id email deactivation_date deleted_on
1 test1@test.com 2018-09-26T16:28:41.143Z NULL
2 test2@test.com 2018-09-19T16:28:41.143Z 2018-09-19T16:28:41.143Z
Я использую AWS CLI для заполнения тестовых данных, как показано, поле удалено_on будет нулевым или будет иметь строку, если оно было деактивировано.
Я использую шаблон облачной информации для построения индекса, но он продолжает давать сбой.Я хотел бы поставить индекс на deactivation_date, чтобы я мог запросить получить всю учетную запись, где
deactivation_date < tomorrow, and deleted_on is null
Это мой cft
AttributeDefinitions:
- AttributeName: "account_id"
AttributeType: "S"
- AttributeName: "email"
AttributeType: "S"
- AttributeName: "deactivation_date"
AttributeType: "S"
KeySchema:
-
AttributeName: "account_id"
KeyType: "HASH"
GlobalSecondaryIndexes:
- IndexName: "email-index"
KeySchema:
- AttributeName: "email"
KeyType: "HASH"
Projection:
ProjectionType: "ALL"
ProvisionedThroughput:
ReadCapacityUnits: !If [conditionIsProd, 10, 5]
WriteCapacityUnits: !If [conditionIsProd, 10, 5]
- IndexName: "deactivation_date-index"
KeySchema:
- AttributeName: "deactivation_date"
KeyType: "RANGE"
Projection:
ProjectionType: "ALL"
ProvisionedThroughput:
ReadCapacityUnits: !If [conditionIsProd, 10, 5]
WriteCapacityUnits: !If [conditionIsProd, 10, 5]
Он сохраняетжалуется на
Недопустимая KeySchema: первый KeySchemaElement не является типом ключа HASH (Сервис: AmazonDynamoDBv2; Код состояния: 400; Код ошибки: ValidationException; Идентификатор запроса: xxxxxxx)
и если я поставлюУдален как индекс, такой как
- AttributeName: "deleted_on"
AttributeType: "S"
Он будет жаловаться, потому что я пытался вставить NULL, но если я сделаю это
- AttributeName: "deleted_on"
AttributeType: NULL
Он также будет жаловаться, что я пытался добавить строку.
Я не уверен, как правильно это сделать