如何解决如何从S3加载spring application.yml
我在用于不同环境的S3存储桶中有一堆spring application.yml属性文件。我想从S3存储桶中加载属性文件,以确保无状态配置。
// Config Object
@Configuration
@ConfigurationProperties(prefix = "yaml")
public class YamlFooProperties {
private String name;
private List<String> aliases;
// standard getter and setters
}
// foo.yml file located in S3 bucket
yaml:
name: foo
aliases:
- abc
- xyz
如何让我的spring-boot应用程序加载这些属性,并在应用程序启动时使其可用?
我正在使用spring-boot版本2.2.6.RELEASE和Java 11。
解决方法
方法1:编写一些非常简单的启动脚本,这些脚本首先从S3中获取(例如curl
)到本地文件(例如s3-config.yaml
),然后正常启动您的应用。
方法2:如果您使用Kubernetes(部署系统是个好主意),则可以使用ConfigMap
或Helm
之类的其他方式来部署应用程序,以满足您对“确保无状态配置”。
方法3:如果只想要Java(没有脚本,没有k8等),则可以记下一些简单的Java代码,该代码从S3中获取文件,然后使用这些数据调用SpringBootApplication的开头。
,您不必将配置存储在s3中。 Spring Cloud提供的默认选项是git支持的存储,这对我来说似乎更有利。但是,也有S3支持。
https://cloud.spring.io/spring-cloud-config/reference/html/#_aws_s3_backend
通过这种方式,您的配置服务器将EnvironmentRepository
配置为使用S3存储桶作为底层存储。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。