此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Cloud Config 4.1.4spring-doc.cadn.net.cn

AWS Secrets Manager

当使用 AWS Secrets Manager 作为后端时,您可以通过将配置放入/application/或者将其放在default配置文件。 例如,如果您使用以下键添加 secret,则使用配置服务器的所有应用程序都将具有属性shared.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

存储库实现将{label}参数添加到 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

请注意,如果未设置默认标签且请求未定义标签,则存储库将使用 secret,就像禁用了标记版本支持一样。此外,仅当启用了 labelled support 时,才会使用 default 标签。否则,定义此属性将毫无意义。spring-doc.cadn.net.cn

请注意,如果暂存标签包含斜杠 (),则应使用特殊字符串指定 HTTP URL 中的标签/({special-string})(以避免与其他 URL 路径产生歧义)与 Git 后端部分的描述方式相同。spring-doc.cadn.net.cn

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

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