java - 如何从AWS参数存储获取Spring数据源属性值?

标签 java spring-boot aws-parameter-store

在我的 Spring Boot 应用程序中,我在 application.properties 文件中维护了 spring.datasource.url 。我需要保护 URL/用户和密码,并且这些值可在 AWS 参数存储中找到。我已经引用了这个doc只需添加对 (spring-cloud-starter-aws-parameter-store-config) 启动模块的依赖即可激活支持。我实际上不知道如何维护配置参数以及如何将参数存储值检索到我的项目中。

如何在不使用以下 (application.properties) 属性中的硬编码值的情况下实现此目的?

spring.datasource.url= url
spring.datasource.username = root
spring.datasource.password = xxxxxx

最佳答案

要在 Spring Boot 应用程序中使用 AWS System Manager Parameter Store 作为 PropertySource,请执行以下步骤。

将以下依赖项添加到build.gradle:

dependencyManagement {
    imports {
        mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Greenwich.SR3'
    }
}

dependencies {
    implementation 'org.springframework.cloud:spring-cloud-starter-aws-parameter-store-config'
}

将指定应用程序名称的属性添加到src/main/resources/bootstrap.properties:

spring.application.name=my-app

默认情况下 Spring Cloud AWS 依赖 DefaultAWSCredentialsProviderChainDefaultAwsRegionProviderChain .

如果应用程序不在 EC2/Fargate 实例上运行,请通过设置以下环境变量来配置 AWS 凭证和区域:

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_REGION=us-west-1

或者确保您拥有有效的 AWS 配置文件 ~/.aws/credentials~/.aws/config

在 AWS System Manager Parameter Store 中定义以下属性:

/config/my-app/spring.datasource.url
/config/my-app/spring.datasource.username
/config/my-app/spring.datasource.password

关于java - 如何从AWS参数存储获取Spring数据源属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58949030/

相关文章:

amazon-elastic-beanstalk - 在 AWS Elastic Beanstalk 中使用 SSM 参数存储

java - 如何使用限制时间的guava缓存加载功能?

java - 当试图创建一个倒置的 Mandelbrot 集时,它被扭曲了

spring-boot - Spring 5 WebFlux服务器通过RSocket协议(protocol)推送通知

java - 使用 Spring Boot 和 Jackson ObjectMapper 时 OffsetDateTime 属性的 JSON 序列化差异

amazon-web-services - 在 CloudFormation 中,将子网 ID 存储在 Parameter Store 中

java - 我如何创建一个在 java 中同时接受 String[] 和 Integer[] 的方法而不重载方法?

java - 如何创建一个监听状态变化的线程?

java - 如何用不同的 Controller 编译使用相同应用程序文件的多个 jar

amazon-web-services - 如何从AWS参数存储中导出参数并导入到另一个帐户