.env 파일에서 시크릿 로드하기
.env에서 시크릿 로드하기
이전에 언급했듯이, 시크릿 환경 변수를 코드에 저장하지 않으려고 합니다. 이 경우에는 Stripe 시크릿 키가 해당됩니다. 이번 장에서는 이를 어떻게 처리하는지 살펴보겠습니다.
이를 위해 env.example
파일이 있습니다.
먼저 env.example
파일을 .env
로 이름을 변경합니다.
$ mv env.example .env
파일 내용을 다음과 같이 변경합니다.
STRIPE_SECRET_KEY=STRIPE_TEST_SECRET_KEY
STRIPE_TEST_SECRET_KEY
를 Stripe 계정 설정 장에서 얻은 시크릿 키로 반드시 교체합니다.
로컬에서 Lambda 함수를 실행할 때 이 환경 변수를 로드하기 위해 serverless-dotenv-plugin을 사용합니다. 이를 통해 serverless.yml
에서 이 변수를 참조할 수 있습니다. .env
파일은 로컬에서만 사용할 것이므로 Git에 커밋하지 않습니다. 배포 자동화를 살펴볼 때 CI에 시크릿을 추가하여 사용할 예정입니다.
다음으로, 이 변수를 참조해 보겠습니다.
serverless.yml
의 environment:
블록에 다음을 추가합니다.
stripeSecretKey: ${env:STRIPE_SECRET_KEY}
environment:
블록은 다음과 같이 표시됩니다.
# 이 환경 변수들은 함수에서 process.env로 사용 가능합니다.
environment:
tableName: notes
stripeSecretKey: ${env:STRIPE_SECRET_KEY}
위 내용을 간단히 설명하면:
-
.env
파일의STRIPE_SECRET_KEY
는 로컬에서 코드를 테스트할 때 환경 변수로 로드됩니다. -
이를 통해
stripeSecretKey: ${env:STRIPE_SECRET_KEY}
줄을 사용해stripeSecretKey
라는 Lambda 환경 변수를 추가할 수 있습니다.tableName
환경 변수와 마찬가지로, Lambda 함수에서process.env.stripeSecretKey
로 참조할 수 있습니다.
이제 .env
파일을 Git에 커밋하지 않도록 해야 합니다. 사용 중인 스타터 프로젝트에는 .gitignore
에 다음 내용이 포함되어 있습니다.
# Env
.env
이 설정은 Git이 이 파일을 커밋하지 않도록 합니다.
이제 결제 API를 테스트할 준비가 되었습니다.
For help and discussion
Comments on this chapter