spring cloud config server설정(AWS parameter store)
2021. 8. 20. 09:00ㆍSpring
이번에는 저번 작성한 git에 저장하는 방법이 아닌 aws parameter store에 저장하는 방법을 적어보겠습니다.
먼저, 첫 번째로는 dependency에 spring cloud config server와 aws java sdk ssm을 추가합니다.
다음으로 parameter store에 값을 저장하는 코드를 작성합니다.
@Override
public void add(Parameter resource) {
log.warn("[add] resource = {}", resource);
try {
//값을 json형식으로 변환
ObjectMapper mapper = new ObjectMapper();
String param = mapper.writeValueAsString(resource.getPropertySources().get("source"));
PutParameterRequest putRequest = new PutParameterRequest();
//키 name
putRequest.setName(getParameterName(resource.getApplicationName(), resource.getProfile().size() != 0 ? resource.getProfile().get(0) : null));
//값
putRequest.setValue(param);
putRequest.setType("String");
//키가 같을 때 덮어씌울 건지
putRequest.setOverwrite(true);
ssmClient.putParameter(putRequest);
} catch (IOException e) {
throw new IllegalArgumentException();
}
값을 저장하면 값을 가져오는 코드도 작성해봅니다.
@Override
public Parameter get(String applicationName, List<String> profile) {
GetParameterRequest request = new GetParameterRequest();
//키 name
request.setName(getParameterName(applicationName, profile.size() != 0 ? profile.get(0) : null));
GetParameterResult parameter = ssmClient.getParameter(request);
String param = parameter.getParameter().getValue();
//값을 json에서 map으로 변환
ObjectMapper mapper = new ObjectMapper();
try {
return new Parameter(applicationName, profile, mapper.readValue(param, new TypeReference<Map<String, Object>>() {}));
} catch (IOException e) {
throw new IllegalArgumentException("Properties could not found.");
}
}
이제 다음과 같은 형식에 맞춰서 값을 전송합니다.
주소 : /config/{applicationName}/{profile}
형식에 맞춰 값을 전송하면 parameter store에 값이 저장된 것을 확인할 수 있습니다.
다음 글에서는 config client를 설정하는 방법을 작성해 보겠습니다.
반응형
'Spring' 카테고리의 다른 글
spring cloud config client설정(parameter store) (0) | 2021.08.23 |
---|---|
spring cloud config server설정(git) (0) | 2021.08.15 |
Spring Security / JWT (0) | 2021.08.14 |
SpringBoot와 Slack webhook을 사용하여 메세지 보내기 (3) | 2021.08.10 |