本文介绍了Spring Cloud ACM SDK的配置步骤。
Spring Cloud ACM SDK的使用步骤
- 增加Maven依赖。
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-acm</artifactId> <version>1.10.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
说明 请使用Spring Cloud Greenwich或Spring Boot 2.1.X.RELEASE。 - 配置应用名和应用组。
在Spring Boot应用中编辑
application.properties
文件,配置spring.application.group
和spring.application.name
。spring.application.group=com.alibaba.cloud.acm spring.application.name=sample-app
- 配置ACM环境和认证信息。
在Spring Boot应用中编辑
application.properties
文件,配置alibaba.acm.endpoint
、alibaba.acm.namespace
、alibaba.acm.accessKey
和alibaba.acm.secretKey
。spring.application.group=com.alibaba.cloud.acm spring.application.name=sample-app alibaba.acm.endpoint=xxx # 命名空间ID。 alibaba.acm.namespace=xxx # 若通过ECS实例RAM角色访问ACM,需添加。 alibaba.acm.ramRoleName=xxx # 注意accessKey、secretKey的大小写。 alibaba.acm.accessKey=xxx alibaba.acm.secretKey=xxx # 如果是加密配置,则添加下面两行进行自动解密。regionId可以通过命名空间详情中的区域ID获取。 # alibaba.acm.openKMSFilter=true # alibaba.acm.regionId=xxx # 如果Group不是DEFAULT_GROUP,则需设置alibaba.acm.group。 # alibaba.acm.group指配置的分组,注意与spring.application.group的区分 # alibaba.acm.group=xxx # 如果file-extension不是properties,则需设置alibaba.acm.file-extension。 # 可选值包括properties、yaml、yml,默认为properties (版本1.0.8以上支持更改此配置) # alibaba.acm.file-extension=properties
- 在ACM控制台添加应用配置。
前往ACM控制台,在相应的命名空间(Namespace)下新建配置。
-
Data ID按照以下约定格式编写:
${spring.application.group}:${spring.application.name}.{alibaba.acm.file-extension}
例如:
com.alibaba.cloud.acm:sample-app.properties
-
配置格式选择
Properties
,配置内容即为想要注入到应用中的具体Key-Value:user.id = 001 user.name = juven2 user.age = 88
-
- 如果需要ACM加载多配置,则需要在Spring Boot应用中编辑
application.properties
文件,加上配置spring.profiles.active=dev,online
。实际项目中,也可以在应用运行参数中加上
-Dspring.profiles.active=dev,online
。加上该配置后,ACM会加载三个配置:
${spring.application.group}:${spring.application.name}.{alibaba.acm.file-extension}, ${spring.application.group}:${spring.application.name}-dev.{alibaba.acm.file-extension}, ${spring.application.group}:${spring.application.name}-online.{alibaba.acm.file-extension}
- 如果项目中需要用到公共配置的需求,可以利用ACM中的级联方式,将公共的配置写在一个特定格式的Data ID内,然后在应用中可按照一定的格式顺序加载配置项,假设
spring.application.group
为com.alibaba.acm.biz
,${spring.application.name}
为demoapp
,alibaba.acm.file-extension
为properties
(默认),此时ACM SDK加载配置的Data ID顺序如下所示。#首先加载原有格式的配置 ${spring.application.group}:${spring.application.name}.${alibaba.acm.file-extension} com.alibaba.acm.biz:demoapp.properties #随后根据Group按照“.”切分后,拼接application.properties依次加载,如: com.alibaba.acm:application.properties com.alibaba:application.properties com:application.properties
备注
spring-cloud-starter-acm 1.0.7
及更高版本已支持Spring Boot 2.x
。spring-cloud-starter-acm 1.0.8
及更高版本已支持YAML
格式。- 推荐使用
2.0.1.RELEASE
及更高版本的Spring Boot 2.x
。2.0.0.RELEASE
版本有读取旧数据的Bug。 - 如需下载完整示例代码,请单击:spring-cloud-acm-sample.zip。