对于最新的稳定版本,请使用Spring Cloud Config 5.0.0spring-doc.cadn.net.cn

AWS Secrets 管理器

当使用 AWS Secrets Manager 作为后端时,你可以通过在 下放配置来与所有应用共享配置/应用/或者通过将其置于默认值申请时的个人资料。 例如,如果你添加了以下密钥的秘密,所有使用配置服务器的应用程序都会拥有这些属性共享.fooshared.bar他们可获得:spring-doc.cadn.net.cn

secret name = /secret/application-default/
secret value =
{
 shared.foo: foo,
 shared.bar: bar
}
secret name = /secret/application/
secret value =
{
 shared.foo: foo,
 shared.bar: bar
}

标签版本

AWS Secrets Manager 仓库允许像 Git 后端一样保留带标签的配置环境版本。spring-doc.cadn.net.cn

仓库实现映射{标签}HTTP 资源的参数映射到 AWS Secrets Manager 秘密的临时标签。要创建带标签的秘密,先创建一个秘密或更新其内容,并为其定义一个临时标签(有时在 AWS 文档中称为版本阶段)。例如:spring-doc.cadn.net.cn

$ aws secretsmanager create-secret \
      --name /secret/test/ \
      --secret-string '{"version":"1"}'
{
    "ARN": "arn:aws:secretsmanager:us-east-1:123456789012:secret:/secret/test/-a1b2c3",
    "Name": "/secret/test/",
    "VersionId": "cd291674-de2f-41de-8f3b-37dbf4880d69"
}

$ aws secretsmanager update-secret-version-stage \
      --secret-id /secret/test/ \
      --version-stage 1.0.0 \
      --move-to-version-id cd291674-de2f-41de-8f3b-37dbf4880d69

{
    "ARN": "arn:aws:secretsmanager:us-east-1:123456789012:secret:/secret/test/-a1b2c3",
    "Name": "/secret/test/",
}

Spring.cloud.config.server.aws-secretsmanager.default-label属性来设置默认标签。如果该属性未被定义,后端使用 AWSCURRENT 作为备用标签。spring-doc.cadn.net.cn

spring:
  profiles:
    active: aws-secretsmanager
  cloud:
    config:
      server:
        aws-secretsmanager:
          region: us-east-1
          default-label: 1.0.0

注意,如果默认标签未设置且请求未定义标签,仓库将使用秘密,仿佛禁用了带标签的版本支持。此外,默认标签只有在已启用标签支持时才会使用。否则,定义这一属性毫无意义。spring-doc.cadn.net.cn

注意,如果分阶段标签包含斜杠(),那么HTTP URL中的标签应用特殊字符串指定/({特殊字符串})(以避免与其他URL路径的歧义)就像Git后端部分描述的那样。spring-doc.cadn.net.cn

Spring.cloud.config.server.aws-secretsmanager.ignore-label忽略{标签}HTTP 资源的参数以及Spring.cloud.config.server.aws-secretsmanager.default-label财产。仓库将使用秘密,就像禁用了标记版本支持一样。spring-doc.cadn.net.cn

spring:
  profiles:
    active: aws-secretsmanager
  cloud:
    config:
      server:
        aws-secretsmanager:
          region: us-east-1
          ignore-label: true