没有id为的数据库实例:' '找到。请指定有效的数据库实例

时间:2015-11-03 18:14:56

标签: java amazon-web-services spring-boot

我将使用Amazon RDS作为我的Spring启动Web应用程序 所以,我用' mainrds'创建了RDS。实例ID Screen Capture。然后我像这样配置application.properties

#RDS
cloud.aws.rds.mainrds
cloud.aws.rds.mainrds.username=dbadmin
cloud.aws.rds.mainrds.password=password
cloud.aws.rds.mainrds.readReplicaSupport=false
cloud.aws.rds.mainrds.databasename=maindata

当我运行应用程序时,我遇到了以下错误消息:

Caused by: java.lang.IllegalStateException: No database instance with id:'mainrds' found. Please specify a valid db instance
    at org.springframework.cloud.aws.jdbc.rds.AmazonRdsDataSourceFactoryBean.getDbInstance(AmazonRdsDataSourceFactoryBean.java:170)
    at org.springframework.cloud.aws.jdbc.rds.AmazonRdsDataSourceFactoryBean.createDataSourceInstance(AmazonRdsDataSourceFactoryBean.java:151)
    at org.springframework.cloud.aws.jdbc.rds.AmazonRdsDataSourceFactoryBean.createInstance(AmazonRdsDataSourceFactoryBean.java:129)
    at org.springframework.cloud.aws.jdbc.rds.AmazonRdsDataSourceFactoryBean.createInstance(AmazonRdsDataSourceFactoryBean.java:45)
    at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:134)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1633)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570)
    ... 178 common frames omitted

我无法弄清问题是什么。什么是遗漏点?

2 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。

spring-cloud-aws可能无法解决其自身的aws region问题。如果您只在一个区域上,请将其插入属性文件中,并附上放置RDS实例的区域。

cloud.aws.region.static=us-east-1

这解决了我的问题。

您也可以尝试:

cloud.aws.region.auto=true

查看EC2元数据服务是否可以解析正确的区域。

也可以通过连接。正常的spring-boot设置,你只需在数据源的url中指定RDS实例端点,如下所示:(对于postgresql实例)

spring.datasource.url=jdbc:postgresql://endpoint.of.rds.instance.amazonaws.com:5432/dbname

当然还会在您的application.properties中提供datasource.platformdatasource.usernamedatasource.passwordspring.database.driverClassNamespring.jpa.database

答案 1 :(得分:3)

接受的答案对我不起作用。

经过一些调试后,我发现问题中给出的application.properties不正确:

#RDS
cloud.aws.rds.mainrds #this line has to be deleted
cloud.aws.rds.mainrds.username=dbadmin
cloud.aws.rds.mainrds.password=password
cloud.aws.rds.mainrds.readReplicaSupport=false
cloud.aws.rds.mainrds.databasename=maindata

删除cloud.aws.rds.mainrds行后,一切正常。

不能选择使用spring.datasource.*,因为我们正在对RDS使用IAM身份验证,因此必须每15分钟重新生成一次密码。

相关问题