3

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

项目 POM 文件

应用程序属性文件

用户存储库文件

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

我已经阅读了一些文档和教程,但不能完全弄清楚这一点。与Spring Cloud SDK类似,Spring Boot AWS 应用示例

[编辑 1]为了提供更多信息,我可以通过 ssh 进入盒子并观察日志。兴趣点是:

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

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

AWSCloudFormation 中提到的我的模板文件是我的模板文件

4

1 回答 1

0

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

eb setenv ExampleVar=ExampleValue

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

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

于 2016-04-13T19:05:45.053 回答