프로젝트 정리/애완동물 종합 솔루션(CatDogForest)

CloudType으로 배포하기 #4

지난이야기

2023.04.04 - [프로젝트 정리/애완동물 종합 솔루션(CatDogForest)] - CloudType으로 배포하기 #3

 

카카오 맵 api와 chatgpt api의 키 값을 application-appKey.properties 라는 설정파일에 담고

spring.profiles.include=appKey

로 해당 파일을 가져와 사용했다. 다만 이 파일은 git.ignore로 저장소에 반영되지 않는다.

그러기에 각자 로컬 파일에서 파일을 만들어 다음과 같이 설정하여 사용했다.

#App Keys
kakao.map.api.key=키값입니다.
kakao.map.api.frontkey=키값입니다.
chatgpt.api.key=키값입니다.

그리고 설정한 키 값을 다음과 같이 설정해서 사용했다.

@Value("${chatgpt.api.key}")
private String apiKey;

 

다만 클라우드 타입에서는 YAML의 설정파일로 Enviorment variables를 다루기 때문에 다음과 같이 변경했다.

 

1. application-appKey.properties 삭제

2. Edit Configuration Settings에서 Envrioment Variables 설정

 

3. 설정한 키 사용시 Enviroment 객체 사용

...

@Service
@Slf4j
public class ChatGptServiceImpl implements ChatGptService {

    private ApplicationContext context;

    public HttpEntity<ChatGptRequestDto> buildHttpEntity(ChatGptRequestDto requestDto) {
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.parseMediaType(ChatGptConfig.MEDIA_TYPE));

        Environment env = context.getEnvironment();
        String apiKey = env.getProperty("CHATGPT_API_KEY");
        log.info("chatgpt api key check : "+apiKey);
        // check push
        headers.add(ChatGptConfig.AUTHORIZATION, ChatGptConfig.BEARER + apiKey);
        return new HttpEntity<>(requestDto, headers);
    }
    ...

    @Autowired
    public ChatGptServiceImpl(ApplicationContext context) {
        this.context = context;
    }
}

 

4. 클라우드 타입의 설정정보와 매칭시키기

 

 

https://catdogforest.shop/

 

Cat Dog Forest

 

catdogforest.shop