mak*_*erj 5 java amazon-web-services spring-boot
我打算将 Amazon RDS 用于我的 Spring Boot Web 应用程序因此,我创建了带有 'mainrds' 实例 ID Screen Capture 的RDS 。然后我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
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序时,我遇到了以下错误消息:
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
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚问题是什么。什么是缺失的点?
我有同样的问题。
spring-cloud-aws可能无法自行解决正确aws region的问题。如果您仅位于一个区域,请将其与放置 RDS 实例的区域一起插入到您的属性文件中。
cloud.aws.region.static=us-east-1
Run Code Online (Sandbox Code Playgroud)
这为我解决了这个问题。
你也可以尝试:
cloud.aws.region.auto=true
Run Code Online (Sandbox Code Playgroud)
查看 EC2 元数据服务是否可以解析正确的区域。
也可以通过连接。正常的 spring-boot 设置,您只需在数据源的 url 中指定 RDS 实例端点,如下所示:(对于 postgresql 实例)
spring.datasource.url=jdbc:postgresql://endpoint.of.rds.instance.amazonaws.com:5432/dbname
Run Code Online (Sandbox Code Playgroud)
当然datasource.platform,还要在 application.properties 中提供datasource.username, datasource.password,spring.database.driverClassName和spring.jpa.database。
| 归档时间: |
|
| 查看次数: |
1550 次 |
| 最近记录: |