diff --git a/registry/dynamodb.go b/registry/dynamodb.go index b2a83d62f..aeb38d9a9 100644 --- a/registry/dynamodb.go +++ b/registry/dynamodb.go @@ -68,6 +68,9 @@ type DynamoDBRegistry struct { const dynamodbAttributeMigrate = "dynamodb/needs-migration" +// DynamoDB allows a maximum batch size of 25 items. +var dynamodbMaxBatchSize uint8 = 25 + // NewDynamoDBRegistry returns a new DynamoDBRegistry object. func NewDynamoDBRegistry(provider provider.Provider, ownerID string, dynamodbAPI DynamoDBAPI, table string, txtPrefix, txtSuffix, txtWildcardReplacement string, managedRecordTypes, excludeRecordTypes []string, txtEncryptAESKey []byte, cacheInterval time.Duration) (*DynamoDBRegistry, error) { if ownerID == "" { @@ -477,10 +480,9 @@ func (im *DynamoDBRegistry) appendDelete(statements []*dynamodb.BatchStatementRe func (im *DynamoDBRegistry) executeStatements(ctx context.Context, statements []*dynamodb.BatchStatementRequest, handleErr func(request *dynamodb.BatchStatementRequest, response *dynamodb.BatchStatementResponse) error) error { for len(statements) > 0 { var chunk []*dynamodb.BatchStatementRequest - // DynamoDB allows a maximum batch size of 25 items. - if len(statements) > 25 { - chunk = statements[:25] - statements = statements[25:] + if len(statements) > int(dynamodbMaxBatchSize) { + chunk = statements[:dynamodbMaxBatchSize] + statements = statements[dynamodbMaxBatchSize:] } else { chunk = statements statements = nil