@Override
    public PropertySource<?> locate(final Environment environment) {
        val props = new Properties();

        try {
            val builder = new AmazonEnvironmentAwareClientBuilder(CAS_CONFIGURATION_PREFIX, environment);
            val amazonDynamoDBClient = builder.build(DynamoDbClient.builder(), DynamoDbClient.class);
            val preventTableCreationOnStartup = builder.getSetting("prevent-table-creation-on-startup", Boolean.class);
            if (!preventTableCreationOnStartup) {
                createSettingsTable(amazonDynamoDBClient, false);
            }
            val scan = ScanRequest.builder().tableName(TABLE_NAME).build();
            LOGGER.debug("Scanning table with request [{}]", scan);
            val result = amazonDynamoDBClient.scan(scan);
            LOGGER.debug("Scanned table with result [{}]", scan);

            result.items()
                .stream()
                .map(CasDynamoDbCloudConfigBootstrapAutoConfiguration::retrieveSetting)
                .forEach(p -> props.put(p.getKey(), p.getValue()));
        } catch (final Exception e) {
            LoggingUtils.error(LOGGER, e);
        }

        return new PropertiesPropertySource(getClass().getSimpleName(), props);
    }
Create settings table.

@param amazonDynamoDBClient the amazon dynamo db client
@param deleteTables         the delete tables
@throws Exception the exception
support/cas-server-support-configuration-cloud-dynamodb/src/main/java/org/apereo/cas/config/CasDynamoDbCloudConfigBootstrapAutoConfiguration.java