在AWS Elastic BeanStalk上运行的Spring Boot应用程序中配置AWS RDS

时间:2016-03-16 07:23:45

标签: spring amazon-web-services spring-boot elastic-beanstalk aws-rds

我正在尝试使用AWS Elastic Beanstalk基础架构学习通过Spring Boot框架开发REST应用程序的方法。在将其部署到AWS Elastic BeanStalk服务器之前,我使用IntelliJ IDE在本地盒子上开发和测试应用程序。我试图在我的应用程序中与AWS RDS实例交谈。使用以下代码片段,我的应用程序能够在部署时与RDS实例通信并在我的本地机器上运行,但在AWS服务器上部署时会给我http 404,我猜是因为部署因无法连接到RDS实例而失败来自AWS。

Project POM file

Application Properties file

User Repository file

我正在寻找一种正确的方法来配置这些秘密,以便它们不存在于git中。理想情况下,从为实例定义的AWS环境变量中获取它,但我无法弄清楚spring引导应用程序属性文件如何访问AWS Elastic BeanStalk环境配置变量。

我已经阅读了一些文档和教程,但不能完全弄清楚这一点。与Spring Cloud SDKSample Spring Boot AWS App

一样

[编辑1] 为了提供更多信息,我能够进入框中并观察日志。兴趣点是:

引起:com.amazonaws.AmazonServiceException:User:arn:aws:sts :: 486695215273:assume-role / aws-elasticbeanstalk-ec2-role / i-dc86381f无权执行:cloudformation:DescribeStackResources(Service: AmazonCloudFormation;状态代码:403;错误代码:AccessDenied;请求ID:1ee8c03b-ecd4-11e5-9fe1-378ce4cb26d3)

[编辑2] 在所需政策中添加AWSCloudFormationReadOnlyAccess安全政策后, i-dc86381f的堆栈不存在(服务:AmazonCloudFormation;状态代码:400;错误代码:ValidationError;请求ID:f579cc15-ecd4-11e5-a20b-114992e25084)

我在AWSCloudFormation中提到的模板文件是My Template File

1 个答案:

答案 0 :(得分:0)

配置Elastic Beanstalk“秘密”或环境变量可以通过cli或GUI完成。对于cli使用:

read

这很简单。文档:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-setenv.html

要通过GUI执行此操作,您将导航到您的应用程序和所需的环境,单击左侧菜单中的配置。单击“软件配置”面板上的齿轮图标,您将进入配置页面,您可以在其中设置“环境属性”,它们是键/值对...您可以设置属性名称,然后属性值,当您单击“应用”时,它们将应用于您的环境,然后您的应用程序可以访问它们,但它通常会访问生产中的环境变量。