本文介紹了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。