Spring Cloud AWS - RDS

Spring Cloud AWS - RDS

Emprevious article, estávamos nos concentrando em EC2; agora, vamos passar para o serviço de banco de dados relacional.

1. Suporte RDS

1.1. Configuração Simples

Spring Cloud AWS can automatically create a DataSource just by specifying the RDS database identifier and the master password. O nome de usuário, o driver JDBC e a URL completa são todos resolvidos pelo Spring.

Se uma conta AWS tiver uma instância RDS com identificador de instância DB comospring-cloud-test-db com senha mestrese3retpass, tudo o que é necessário para criar umDataSource são as duas linhas a seguir emapplication.properties :

cloud.aws.rds.spring-cloud-test-db
cloud.aws.rds.spring-cloud-test-db.password=se3retpass

Três outras propriedades podem ser adicionadas se você desejar usar valores diferentes do padrão do RDS:

cloud.aws.rds.spring-cloud-test-db.username=testuser
cloud.aws.rds.spring-cloud-test-db.readReplicaSupport=true
cloud.aws.rds.spring-cloud-test-db.databaseName=test

1.2. Fonte de dados personalizada

Em um aplicativo sem Spring Boot ou nos casos em que configurações personalizadas são necessárias,we can also create the DataSource using the Java-based configuration:

@Configuration
@EnableRdsInstance(
  dbInstanceIdentifier = "spring-cloud-test-db",
  password = "se3retpass")
public class SpringRDSSupport {

    @Bean
    public RdsInstanceConfigurer instanceConfigurer() {
        return () -> {
            TomcatJdbcDataSourceFactory dataSourceFactory
             = new TomcatJdbcDataSourceFactory();
            dataSourceFactory.setInitialSize(10);
            dataSourceFactory.setValidationQuery("SELECT 1");
            return dataSourceFactory;
        };
    }
}

Além disso, observe que precisamos adicionar a dependência correta do driver JDBC.

2. Conclusão

Neste artigo, vimos várias maneiras de acessar o serviço AWS RDS; no próximo e emfinal article of the series, daremos uma olhada no suporte do AWS Messaging.

Como de costume, os exemplos estão disponíveisover on GitHub.