本文介绍了Spring Cloud ACM SDK的配置步骤。

Spring Cloud ACM SDK的使用步骤

  1. 增加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。
  2. 配置应用名和应用组。

    在Spring Boot应用中编辑application.properties文件,配置spring.application.groupspring.application.name

    spring.application.group=com.alibaba.cloud.acm
    spring.application.name=sample-app
  3. 配置ACM环境和认证信息。

    在Spring Boot应用中编辑application.properties文件,配置alibaba.acm.endpointalibaba.acm.namespacealibaba.acm.accessKeyalibaba.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
                        
  4. 在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
  5. 如果需要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}
  6. 如果项目中需要用到公共配置的需求,可以利用ACM中的级联方式,将公共的配置写在一个特定格式的Data ID内,然后在应用中可按照一定的格式顺序加载配置项,假设spring.application.groupcom.alibaba.acm.biz${spring.application.name}demoappalibaba.acm.file-extensionproperties(默认),此时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.x2.0.0.RELEASE版本有读取旧数据的Bug
  • 如需下载完整示例代码,请单击:spring-cloud-acm-sample.zip

相关文档

通过ECS实例RAM角色访问ACM