S3 中的 Spring Boot 配置 - AWS beanstalk
Posted
技术标签:
【中文标题】S3 中的 Spring Boot 配置 - AWS beanstalk【英文标题】:Spring boot configs in S3 - AWS beanstalk 【发布时间】:2017-07-03 12:07:45 【问题描述】:我有一个在 AWS beanstalk 中运行的spring boot 应用程序。它当前从src/main/resources/application.properties
文件中读取属性。我想通过在S3
中将属性作为文件提供来覆盖这些配置。所以我在S3
s3://my-bucket/some_dir/application.properties
创建了一个文件。在 beanstalk 应用程序中,我在 Software Configuration 中提供了以下设置。
spring.config.location
的值为 s3://my-bucket/some_dir/application.properties
。
重新启动应用程序,但我仍然看到旧值。我遵循了文档here。
我做错了什么?
【问题讨论】:
正如@Strelok 所指出的,这种方法行不通。我也许可以将脚本添加到.ebextensions
以从 S3 下载文件然后读取它,但是每次我想更新配置时都需要重新部署 jar。这不是我的应用程序的用例。相反,我现在正在应用程序的方法中读取 S3 文件并加载属性。这样,我可以在应用程序运行时调用该方法并重新加载配置。
【参考方案1】:
那是行不通的。 Spring 不仅仅理解 s3:// URL。为您的应用程序创建一个启动脚本,该脚本首先下载文件,然后使用--spring.config.locations
将其传递给您的应用程序。
【讨论】:
以上是关于S3 中的 Spring Boot 配置 - AWS beanstalk的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot2 系列教程Spring Boot 中的静态资源配置
是否可以使用 Amazon Cognito 组来设置对 AW 资源(例如 Amazon DynamoDB 和 Amazon S3)的权限?