当前位置: 首页 > news >正文

Springboot引入Spring Cloud for AWS的配置中心(Parameter Store和Secrets)

问题

现在手上有一个老Spring2.5.15项目,需要使用AWS Parameter Store作为配置中心服务。

思路

引入这个Spring版本对应的Spring Cloud,然后再引入Spring Cloud AWS相关组件。然后,在AWS云上面准备好配置,然后,启动我本地Spring工程,验证有没有使用云端配置。

Spring Cloud引入

Spring Cloud版本选择
从Spring官网可知,我这个老版本的Spring2.5.15,只能选择Spring Cloud 2020.0.x的Cloud版本。具体依赖如下:

<properties><spring-cloud.version>2020.0.6</spring-cloud.version>
</properties>
<dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>

等待一段时间后,然后在引入Spring Cloud AWS集成依赖。

Spring Cloud AWS 依赖引入

<properties><spring-cloud-aws.version>2.3.5</spring-cloud-aws.version>
</properties>
<dependencyManagement><dependencies><dependency><groupId>io.awspring.cloud</groupId><artifactId>spring-cloud-starter-aws-parameter-store-config</artifactId><version>${spring-cloud-aws.version}</version></dependency><dependency><groupId>io.awspring.cloud</groupId><artifactId>spring-cloud-starter-aws-secrets-manager-config</artifactId><version>${spring-cloud-aws.version}</version></dependency></dependencies>
</dependencyManagement>

注意这里也有版本对应要求的,可以查看Spring Cloud AWS在github上面的开源项目介绍,具体如下图:
Spring Cloud AWS版本选择

<dependency><groupId>io.awspring.cloud</groupId><artifactId>spring-cloud-starter-aws-parameter-store-config</artifactId>
</dependency><dependency><groupId>io.awspring.cloud</groupId><artifactId>spring-cloud-starter-aws-secrets-manager-config</artifactId>
</dependency>

Parameter Store创建参数

创建jdbc连接url参数
这里以jdbc连接参数为例子。创建了一个连接参数。

Secrets Manager创建参数

下面设置数据库中用户名和密码,如下图:
secrets设置
配置密钥,如下图:
设置secrets名字

Spring配置

spring:application:name: apiconfig:import:- aws-parameterstore:/config/${spring.application.name}_${spring.profiles.active}- aws-secretsmanager:/secret/${spring.application.name}_${spring.profiles.active}
aws:paramstore:region: cn-north-1defaultContext: ${spring.application.name}secretsmanager:region: cn-north-1defaultContext: ${spring.application.name}

注意,这里用到了spring.config.import,这种方式Spring配置是对原来的boot环境多配置文件的替代。

配置调试日志

# 日志配置
logging:level:io:awspring:cloud:paramstore:AwsParamStorePropertySource: debug

测试验证

重启Spring工程,出现如下内容,说明spring读到了配置:

11:02:13.555 [restartedMain] INFO  i.a.c.s.AwsSecretsManagerPropertySources - [logTo,255] - Loading secrets from AWS Secret Manager secret with name: /secret/api_local, optional: false
11:02:13.555 [restartedMain] INFO  i.a.c.p.AwsParamStorePropertySources - [logTo,255] - Loading property from AWS Parameter Store with name: /config/api_local, optional: false
11:02:13.555 [restartedMain] DEBUG i.a.c.p.AwsParamStorePropertySource - [logTo,252] - Populating property retrieved from AWS Parameter Store: .spring.datasource.druid.master.url

类似如下效果:
启动效果

总结

spring.config.import方式配置,是Spring为了支持云原生配置中心,后面加入新的配置方式,是对boot配置方式的替代。之前写过一篇文章(《Spring Cloud AWS配置中心使用》)就是使用Spring老的boot方式进行的配置。

参考

  • Spring Cloud
  • Spring Cloud2020最新版本
  • spring-cloud-aws
  • Externalized Configuration
  • Leveraging AWS Systems Manager Parameter Store for Spring Boot Configuration
  • Spring Cloud AWS配置中心使用

相关文章:

  • 使用redis代替session的登录校验
  • 语音合成之十七 语音合成(TTS)中文自然度:问题、成因、解决方案
  • 关于 Web 安全:6. 常见 CMS 开源系统风险点
  • 2.3 TypeScript 非空断言操作符(后缀 !)详解
  • WIN10 安装dify ollama搭建工作流agent
  • 更新时间相差8个小时
  • 如何创建一个流程图/思维导图
  • 安全监测预警系统的核心价值
  • 深入解析Spring Boot与Redis的集成实践
  • 图论学习笔记 4 - 仙人掌图
  • 使用mermaid快速绘制流程图
  • 新消息!阿里云ACP大模型认证有变化!
  • 阿里云配置安全组策略开放端口
  • Windows安装Docker部署dify,接入阿里云api-key进行rag测试
  • 阿里云CDN和腾讯云CDN综合对比
  • 相交链表(力扣160 easy)
  • 分布式常见概念
  • GO中常见并发模式总结
  • 佰力博科技与您谈谈高温介电温谱仪如何保养
  • Python-ArcGIS蒸散发组分解析与GPP估算技术
  • 网站收录怎么删/百度联盟点击广告赚钱
  • 网站编辑能在家做/株洲seo优化报价
  • 要建一个网站该怎么做/网站注册
  • 关于做营销型网站的建议/全网
  • wordpress 转盘插件/祁阳seo
  • 大亚湾住建局网站 建设工程规划/百度推广开户电话