如何从AWS参数存储中获取spring datasoure属性值?

时间:2019-11-20 07:38:48

标签: 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

1 个答案:

答案 0 :(得分:0)

要将AWS System Manager参数存储用作Spring Boot应用程序中的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参数存储中定义以下属性:

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