protected DynamoDbClient createDynamoDbClient(final AwsCredentialsProvider credentialsProvider,
                                                  final AbstractDynamoDbProperties props) {
        LOGGER.trace("Creating DynamoDb client configuration...");
        if (StringUtils.isNotBlank(props.getDax().getUrl())) {
            return FunctionUtils.doUnchecked(() -> {
                val region = StringUtils.isBlank(props.getRegion()) ? Region.AWS_GLOBAL : Region.of(props.getRegion());
                val configuration = Configuration.builder()
                    .region(region)
                    .url(props.getDax().getUrl())
                    .credentialsProvider(credentialsProvider)
                    .requestTimeoutMillis(Math.toIntExact(Beans.newDuration(props.getDax().getRequestTimeout()).toMillis()))
                    .connectTimeoutMillis(Math.toIntExact(Beans.newDuration(props.getDax().getConnectTimeout()).toMillis()))
                    .idleTimeoutMillis(Math.toIntExact(Beans.newDuration(props.getDax().getIdleTimeout()).toMillis()))
                    .connectionTtlMillis(Math.toIntExact(Beans.newDuration(props.getDax().getConnectionTtl()).toMillis()))
                    .maxConcurrency(props.getDax().getMaxConcurrency())
                    .readRetries(props.getDax().getReadRetries())
                    .writeRetries(props.getDax().getWriteRetries())
                    .build();
                return ClusterDaxClient
                    .builder()
                    .overrideConfiguration(configuration)
                    .build();
            });
        }
        val builder = DynamoDbClient.builder();
        AmazonClientConfigurationBuilder.prepareSyncClientBuilder(builder, credentialsProvider, props);
        return builder.build();
    }
Create amazon dynamo db instance.

@param props the dynamo db properties
@return the amazon dynamo db
support/cas-server-support-dynamodb-core/src/main/java/org/apereo/cas/dynamodb/AmazonDynamoDbClientFactory.java