인프런 커뮤니티 질문&답변

노정호님의 프로필 이미지
노정호

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Profiles을 사용한 Configuration 적용

config-service를 profiles 별로 나눌수 있을까요?

작성

·

165

·

수정됨

0

config-service 서버 profile 설정 질문드립니다.

 

예를들어 profile3가지로 나눌 경우

application.yml

application-dev.yml

application-prod.yml

 

"prod" 에서만 git 경로를 참고하고

나머지 두개는 물리 경로를 지정하려 합니다.

 

bootstrap에 설정한 encrypt.key 도 profile별로 변경하여 사용하고 싶은데 profile 설정이 안되내요...

 

수업내용 참고하여 설정시 yml 파일에

spring.profiles.active=native

이게 없을경우 에러가 납니다.

 

해결 방법이 있을지 문의드립니다.

 

에러로그는 아래와 같습니다.

Description:

Invalid config server configuration.

Action:

If you are using the git profile, you need to set a Git URI in your configuration. If you have set spring.cloud.config.server.bootstrap=true, you need to use a composite configuration.

 

 

 

 

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

질문하신 config-service 서버의 profile 설정에 대하여 각각 다른 환경(profie)에서 서로 다른 방식으로 설정 파일을 참조하는 방법(예: prod 환경에서는 Git 경로 참고, 나머지 환경에서는 물리 경로 사용)에 대해서 문의해주셨습니다.

해당 질문에 대한 구체적인 해결 방법을 포함한 질문과 유사한 내용은 다음 링크에서 확인할 수 있습니다.

해결 방안:

config-service의 application.yml 파일에서는 profiles 구성을 통해 활성 profile을 지정할 수 있지만, spring.profiles.active에 여러 환경을 구분하여 관리하기 위해서는 spring.cloud.config.server.git.uri와 같은 구체적인 설정이 필요하며, profile별로 다른 저장소 혹은 경로를 지정할 수 있는 방법을 모색해야 합니다.

예를 들어, application-prod.yml에서는 Git 리포지토리를 지정하고, 다른 profile 설정 파일에서는 로컬 파일 시스템 경로를 지정하는 방식을 사용할 수 있습니다. 하지만, 질문하신 에러 메시지와 같이, 적절한 URI나 경로 설정 없이 profile만으로 구분하려 하면 문제가 발생할 수 있습니다. 따라서, 각 profile별로 적절한 경로나 URI 설정을 포함시켜주어야 합니다.

아래는 단순한 형태의 예시입니다:

spring:
  profiles:
    active: native
  cloud:
    config:
      server:
        native:
          search-locations: file:///path/to/local/config
---
spring:
  profiles: prod
  cloud:
    config:
      server:
        git:
          uri: https://your-git-repository-url

이러한 설정 방법은 profile별로 서로 다른 설정 소스를 활용할 수 있게 해줍니다. 주의해야 할 점은 각각의 profile 설정 파일에 올바른 경로나 URI가 명시되어야 한다는 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

노정호님의 프로필 이미지
노정호

작성한 질문수

질문하기