Spring boot 为什么我的Elastic Beanstalk/Spring Cloud AWS应用程序无法使用固定资源名称AWSEBRDSTABASE?

Spring boot 为什么我的Elastic Beanstalk/Spring Cloud AWS应用程序无法使用固定资源名称AWSEBRDSTABASE?,spring-boot,amazon-elastic-beanstalk,spring-cloud,spring-cloud-aws,Spring Boot,Amazon Elastic Beanstalk,Spring Cloud,Spring Cloud Aws,我有一个使用SpringCloudAWS的SpringBoot应用程序。我正在Elastic Beanstalk上使用Amazon RDS数据库部署应用程序 根据,Elastic Beanstalk为部署应用程序时为您创建的AWS资源提供固定的资源名称 这意味着,我应该能够使用Elastic Beanstalk资源名称AWSEBRDSDatabase,而不是通过实际实例ID(类似于axxt7bi97gbjy4)引用RDS数据库。我希望这样做的原因是,克隆一个弹性Beanstalk环境实际上可以工

我有一个使用SpringCloudAWS的SpringBoot应用程序。我正在Elastic Beanstalk上使用Amazon RDS数据库部署应用程序

根据,Elastic Beanstalk为部署应用程序时为您创建的AWS资源提供固定的资源名称

这意味着,我应该能够使用Elastic Beanstalk资源名称
AWSEBRDSDatabase
,而不是通过实际实例ID(类似于
axxt7bi97gbjy4
)引用RDS数据库。我希望这样做的原因是,克隆一个弹性Beanstalk环境实际上可以工作,而无需手动干预来配置正确的数据库

问题:

当我使用Elastic Beanstalk固定资源名
AWSEBRDSDatabase
配置Spring Boot/Spring Cloud应用程序的数据源时

cloud.aws.stack.auto=false
cloud.aws.region.auto=true
cloud.aws.credentials.instanceProfile=true

cloud.aws.rds.AWSEBRDSDatabase.username=user
cloud.aws.rds.AWSEBRDSDatabase.password=password
cloud.aws.rds.AWSEBRDSDatabase.databaseName=ebdb
…我得到以下异常

Caused by: java.lang.IllegalStateException: No database instance with id:'AWSEBRDSDatabase' found. Please specify a valid db instance
        at org.springframework.cloud.aws.jdbc.rds.AmazonRdsDataSourceFactoryBean.getDbInstance(AmazonRdsDataSourceFactoryBean.java:170) ~[spring-cloud-aws-jdbc-1.0.4.RELEASE.jar!/:1.0.4.RELEASE]
        at org.springframework.cloud.aws.jdbc.rds.AmazonRdsDataSourceFactoryBean.createDataSourceInstance(AmazonRdsDataSourceFactoryBean.java:151) ~[spring-cloud-aws-jdbc-1.0.4.RELEASE.jar!/:1.0.4.RELEASE]
        at org.springframework.cloud.aws.jdbc.rds.AmazonRdsDataSourceFactoryBean.createInstance(AmazonRdsDataSourceFactoryBean.java:129) ~[spring-cloud-aws-jdbc-1.0.4.RELEASE.jar!/:1.0.4.RELEASE]
        at org.springframework.cloud.aws.jdbc.rds.AmazonRdsDataSourceFactoryBean.createInstance(AmazonRdsDataSourceFactoryBean.java:45) ~[spring-cloud-aws-jdbc-1.0.4.RELEASE.jar!/:1.0.4.RELEASE]
        at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:134) ~[spring-beans-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
      ...
当我使用特定RDS实例的引用配置数据源时:

cloud.aws.stack.auto=false
cloud.aws.region.auto=true
cloud.aws.credentials.instanceProfile=true

cloud.aws.rds.axxt7bi97gbjy4.username=user
cloud.aws.rds.axxt7bi97gbjy4.password=password
cloud.aws.rds.axxt7bi97gbjy4.databaseName=ebdb
…一切都很好

我如何修改我的环境以使Elastic Beanstalk固定资源名
AWSEBRDSTABASE
存在?

更新

我在.ebextensions中添加了以下内容,并使用EB CLI创建了一个新环境。没有变化,同样的错误。AWSEBRDSDatabase资源不可用

Resources:
  AWSEBRDSDatabase:
    Type: AWS::RDS::DBInstance
    Properties:
      AllocatedStorage: 5
      DBInstanceClass: db.t2.small
      DBName: test
      Engine: postgres
      EngineVersion: 9.3
      MasterUsername: test
      MasterUserPassword: testtesttest

嗨,盖伯瑞尔,你能让它工作吗?我相信我实际上是在您处理的代码库中工作,该代码库出现了此错误,我遇到了相同的问题—无法克隆生产环境。你是怎么进行人工干预的?@JanacMeena我不记得了,那是几年前的事了。我甚至不知道这个项目是什么;)也许我可以帮你: