Spring Cloud Config 정리(1)

spring 의 config 정보들을 관리해주는 원격 config server를 쉽게 구축 가능

cloud config 의 property source를 찾는 기본 전략은 설정이 있는 git repository를 clone 하고 작은 SpringApplication 을 띄워서 이 repository의 설정 파일을 이용한다.

또한 JSON 엔드포인트로 제공된다.

config server에 기본적인 git 주소를 셋팅해야한다.

$ .properties
spring.cloud.config.server.git.uri=#GIT REPO ADDRESS
#or .yml
spring:
cloud:
config:
server:
git:
uri: #GIT REPO ADDRESS

해당 git repository 에는 설정파일이 존재해야 하며
{application}.(properties |yml) 을 만들어두면된다.

spring cloud server에서는 이렇게 참조된 설정정보를 접근하는 엔드포인트가 아래와 같이 제공된다.

/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties

application은 SpringApplcation에서 spring.config.name 으로 설정되면 안된다.

profile 은 active profile (또는 “,”로 구분된 properties list)이다.

label 은 optional git label 이다 (default 는 master)

  1. client side usage

spring cloud config client로 의존성 정의 필요.

Http Server에서, 서버가 동작할때 외부 설정을 기본로컬서버 8888에서 찾는다.

변경하기 위해서는 bootstrap.properties (application.properties 와 유사) 를 사용해야 한다.

spring.cloud.config.uri: http://myconfigserver.com

2. server side usage

@EnableConfigServer 어노테이션으로 config server로 동작하도록 한다.

spring.cloud.config.server.git.uri=$GIT REPO ADDRESS

application properties 에 git 주소를 지정해야한다.

Config Server를 위해 설정정보를 어디에 저장해야 하는가?

이 행동을 지배하는 전략은 EnviromentRepository 이고,
Enviroment 객체를 전달한다.
이 Environment 는 Spring Environment (propertySources를 포함한다) 로 부터 shallow copy된다.

Environment는 3개의 변수들로 이루어졌다.

  • {application}, which maps to spring.application.name on the client side.
  • {profile}, which maps to spring.profiles.active on the client (comma-separated list).
  • {label}, which is a server side feature labelling a "versioned" set of config files.

Git Backend

  • git URI 에 placeholder 지원된다. (application , profile, label)
  • 패턴 매칭과 멀티 레파지토리
  • 인증 (ID/PW, AWS codeCommit, SSH configuration)
  • placeholders in git search paths
  • force pull in gir respoistories
  • deleteing untracked brances in gir repositories

Version Control Backend Filesystem Use

File System Backend

Vault Backend

Composite Environment Repositories

여러 repository를 참조할때 order property를 명시하여 이용할수 있다.

… 계속,

Written by

엘디는 사랑입니다.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store