当前位置: 首页 > 知识库问答 >
问题:

如何从S3加载Springapplication.yml

臧俊杰
2023-03-14

我在S3存储桶中有一堆针对不同环境的Springapplication.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启动版本2.2.6.RELEASE和Java11。

共有2个答案

马德宇
2023-03-14

您不必将配置存储在s3中。Spring Cloud提供的默认选项是git支持的存储,这对我来说似乎更有利。但是,也有S3支持。

https://cloud.spring.io/spring-cloud-config/reference/html/#_aws_s3_backend

这样,您的配置服务器就有了一个配置为使用S3存储桶作为底层存储的< code >环境存储库。

斜博超
2023-03-14

方法1:编写一些非常简单的启动脚本,首先从S3获取(比如< code>curl)本地文件(比如< code>s3-config.yaml),然后正常启动你的应用程序

方法2:如果您使用的是Kubernetes(这是部署系统的好主意),则可以使用ConfigMapHelm等其他方式来部署您的应用程序,以满足您“保证无状态配置”的需求。

方法3:如果你只想要Java(没有脚本,没有k8s等等),那么你可以写一些简单的Java代码,从S3获取文件,然后用这些数据调用你的spring boot应用程序的start。

 类似资料:
  • 我拥有的复制命令: 我的红移星系团的区域是AP-东南-1b,所以这将是与水桶(新加坡)相同的区域。我在这里不知所措,我需要尽快向管理层提出一个可行的数据仓库解决方案。任何帮助都将不胜感激。谢了。

  • 问题内容: 我想通过JSESSIONID 获取Java 。可能吗?如果是,怎么办? 问题答案: 你需要收集所有在用你自己。 只需按以下所示注册即可运行: 然后,在任何您想做的地方都可以解决问题。 也就是说,这是一种 巨大的 气味。当然,解决 实际 功能需求的方法肯定比这更好;)正如我在您的后续问题中评论的那样: 这是您第二次询问一个在现实世界中永远不应该实践的问题。老实说,这一切都有味道。这是什么

  • 我在S3存储桶中有一个包含json文件的文件夹。我正在使用Spring Boot。用户提供和特定文件()名称。

  • 我是数据砖或火花的新手,并从数据砖中学习这个演示。我在 AWS 上设置了数据砖工作区。下面的代码来自官方演示,运行正常。但是这个csv文件在哪里?我想检查文件并了解路径参数的工作原理。

  • 我无法从亚马逊S3桶加载雪花中的外部表。外部表创建成功,但在运行select命令时,不会返回任何内容。奇怪的是COPY into命令对雪花中的同一个表起作用。 谢谢,纳维德