提供纯文本
您的应用程序可能需要针对其环境定制的通用纯文本配置文件,而不是使用抽象(或以 YAML 或 properties 格式表示的替代表示形式之一)。
Config Server通过位于其中的附加端点提供这些内容,并且与常规环境端点具有相同的含义,但其路径是文件名(例如)。
此终端节点的源文件的定位方式与环境终端节点的定位方式相同。
相同的搜索路径用于属性和 YAML 文件。
但是,不是聚合所有匹配的资源,而是仅返回第一个匹配的资源。Environment
/{application}/{profile}/{label}/{path}
application
profile
label
path
log.xml
找到资源后,将使用提供的应用程序名称、配置文件和标签的 effective 解析正常格式 () 的占位符。
通过这种方式,资源终端节点与环境终端节点紧密集成。${…}
Environment
与环境配置的源文件一样,the 用于解析文件名。
因此,如果您想要特定于配置文件的文件,可以通过名为 (优先于 ) 的文件来解析。profile /*/development/*/logback.xml logback-development.xml logback.xml |
如果您不想提供并让服务器使用默认标签,则可以提供请求参数。
因此,配置文件的前面示例可以是 。label useDefaultLabel default /sample/default/nginx.conf?useDefaultLabel |
目前,Spring Cloud Config 可以为 git、SVN、原生后端和 AWS S3 提供明文。 对 git、SVN 和原生后端的支持是相同的。AWS S3 的工作方式略有不同。 以下部分显示了每个 API 的工作原理:
Git、SVN 和原生后端
请考虑以下 GIT 或 SVN 存储库或本机后端的示例:
application.yml
nginx.conf
这可能类似于下面的清单:nginx.conf
server {
listen 80;
server_name ${nginx.server.name};
}
application.yml
可能类似于下面的清单:
nginx:
server:
name: example.com
---
spring:
profiles: development
nginx:
server:
name: develop.com
资源可能如下所示:/sample/default/master/nginx.conf
server {
listen 80;
server_name example.com;
}
/sample/development/master/nginx.conf
可能如下所示:
server {
listen 80;
server_name develop.com;
}
AWS S3
要为 AWS s3 启用纯文本服务,Config Server 应用程序需要包含对 .
有关如何设置该依赖项的详细信息,请参阅 Spring Cloud AWS 参考指南。
此外,当将 Spring Cloud AWS 与 Spring Boot 一起使用时,包含自动配置依赖项很有用。
然后,您需要配置 Spring Cloud AWS,如 Spring Cloud AWS 参考指南中所述。io.awspring.cloud:spring-cloud-aws-context
解密纯文本
默认情况下,不会解密纯文本文件中的加密值。为了启用纯文本文件的解密,请在spring.cloud.config.server.encrypt.enabled=true
spring.cloud.config.server.encrypt.plainTextEncrypt=true
bootstrap.[yml|properties]
仅 YAML、JSON 和属性文件扩展名支持解密纯文本文件。 |
如果启用此功能,并且请求不受支持的文件扩展,则不会解密文件中的任何加密值。