[E-commerce App] Profiles를 통한 Configuration 적용
멀티 환경에서 구성 정보를 달리 할 수 있는 방법에 대해 알아보자.
이를 위해, 다양한 profiles를 가진 구성 정보 파일(yml)을 여러개 만들어놓고 상황에 맞는 yml 파일을 적용할 것이다.
여러 profiles를 갖는 yml 파일 생성
ecommerce.yml
token:
expiration_time: 864000000
secret: my_token_default
gateway:
ip: 127.0.0.1
ecommerce-dev.yml
token:
expiration_time: 864000000
secret: my_token_default_dev
gateway:
ip: 127.0.0.1
ecommerce-prod.yml
token:
expiration_time: 864000000
secret: my_token_default_prod
gateway:
ip: 127.0.0.1
add - commit 까지 마친다.
bootstrap.yml
변경
user-service
와 gateway-service
의 bootstrap.yml
파일을 변경한다.
user-service
spring:
cloud:
config:
uri: http://127.0.0.1:8888
name: ecommerce
profiles: # 🌟 추가
active: dev
gateway-service
spring:
cloud:
config:
uri: http://127.0.0.1:8888
name: ecommerce
profiles: # 🌟 추가
active: prod
이렇게 변경한 뒤, user-service
와 gateway-service
두 개의 서버를 재기동한다.
테스트
user-service
와 gateway-service
에 토큰을 가져오는 부분(env.getProperty("token.secret")
)에 break point를 찍고, 디버그 모드로 실행하자.
포스트맨으로 로그인을 진행해보자.
user-service
에서는 my_token_dev
를 가져왔다.
(토큰값을 확인하기 위해서는, 위 사진에서 보이는 것처럼 env.getProperty("token.secret")
을 입력하고 오른쪽 +
로 추가한다.)
이번에는 로그인 하고 받은 토큰을 이용해 /user-service/health-check
로 요청해보자.
gateway-service
에서는 my_token_prod
를 가져왔다.
이처럼 토큰 정보가 다르기 때문에 권한이 없다는 오류가 발생한다.
따라서 같은 토큰을 사용할 수 있도록 gateway-service
의 bootstrap.yml
에서 spring.profiles.active
를 기존 prod
에서 dev
로 바꾼다.
이번에는 200 OK 를 확인할 수 있다.
💛 개인 공부 기록용 블로그입니다. 👻