Я изучаю глобальные таблицы DDB, и есть новая версия . Я использовал пример формы в этом руководстве для создания реплик в трех регионах и, таким образом, создания глобальной таблицы.
Вот что у меня в коде:
// Initialize DDB service client earlier with credentials
private void createGlobalTableConfiguration( String tableName, List<Regions> replicaRegions ) {
log.info( "Creating global table configuration for {} in regions: {}", tableName, replicaRegions );
final List<ReplicationGroupUpdate> replicaActionList = replicaRegions.stream()
.map( region -> new ReplicationGroupUpdate()
.withCreate( new CreateReplicationGroupMemberAction().withRegionName( region.getName() ) )
)
.collect( Collectors.toList() );
final UpdateTableResult result = ddbServiceClient
.updateTable( new UpdateTableRequest()
.withTableName( tableName )
.withReplicaUpdates( replicaActionList ) );
log.info( "Replicas are being added to create global table: {}", result );
Но с этим я получаю следующее исключение:
Update table operation with more than one create or delete replica actions not allowed (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ValidationException;
Означает ли это, что мы можем добавить только один реплика за раз? Я не понимаю, потому что API принимает массив действий по обновлению.
У меня есть вопросы:
Какой вариант использования, где мы ' d добавить несколько действий реплики, но не все из них будут созданы?
Косвенно мы добавляем одну реплику, ждем, пока статус таблицы снова станет активным, а затем размещаем второй запрос - Похоже, долгое ожидание для получения конфигурации глобальной таблицы.