SpringBoot) S3 환경변수를 읽지 못하는 에러

Jeong Choi(최현정)·2023년 4월 9일
1

에러모음

목록 보기
1/6
post-custom-banner

S3를 연동하는 과정에서 발생한 에러를 정리했다.

.env 파일에 S3에서 발급받은 AccessKey와 SecretKey를 아래와 같이 작성했으며,

[.env]

S3_ACCESSKEY= 비밀
S3_SECRETKEY= 비밀

application.yml파일에 S3의 환경변수 설정을 해주었다.

cloud:
  aws:
    credentials:
      accessKey: ${S3_ACCESSKEY}
      secretKey: ${S3_SECRETKEY}
    s3:
      bucket: techeer-carrot
    region:
      static: ap-northeast-2
    stack:
      auto: false

그러고나서 실행을 해보니 S3버켓을 연동하는 과정에서 아래와 같은 에러가 발생했다.

2023-04-09 18:42:32.981 ERROR 4229 --- [           main] 
o.s.boot.SpringApplication               : Application run failed

java.lang.IllegalArgumentException: 
Could not resolve placeholder 'S3_ACCESSKEY' in value "${S3_ACCESSKEY}"

원인)
.env에서 작성한 key들이 application.yml에 읽히지 않았다.

해결방안) Intellij에 있는 Edit Configuration에서 S3의 환경변수를 입력해준다.


Edit Configurations 에 들어간다.


위 화면에서 Modify options를 누른다.


Environment variables를 누른다.

여기서 + 버튼을 누르고 S3의 key값들을 추가해준다.

Edit Configuration 에 환경변수를 설정했을 때의 장점

  • .env에 환경변수를 작성하지 않아도 실행된다. 이렇게 했을 때의 장점은 만약 env파일을 gitIgnore파일에 작성하지 않은 상태에서 git에 올린다 했을 때 보안상 노출될 위험이 없다.
    S3의 환경변수뿐만 아니라, 데이터베이스의 환경변수 등을 설정할 수 있다.
    앞으로 환경변수를 env에 작성하는 것이 아닌 Edit Configuration을 이용해봐야겠다.
profile
Node와 DB를 사랑하는 백엔드 개발자입니다:)
post-custom-banner

0개의 댓글