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

rosy님의 프로필 이미지
rosy

작성한 질문수

Airflow 마스터 클래스

.env 파일 변수를 PythonOperator에 적용할 경우 질문드립니다!

작성

·

99

0

안녕하세요! 강사님

서울시 공공데이터 API를 이용해 데이터를 추출하는 것을 보고

저도 넥슨 오픈 API를 가지고 데이터를 출력해보려고 DAG과 PythonOperator를 만들어봤는데요,

 

 

보통 민감정보는 .env파일에다 적어놓고 가져와서 사용하기에 이렇게 짰는데,

.env파일은 gitignore에 들어가니 dag실행시 읽어올 수가 없는데

이런 경우는 어떻게 할까요...?

 

강의에서 보여주신 것처럼 서울시 공공 api에서 simplehttpoperator를 사용하고, airflow웹에서 variable 변수를 사용했듯이 이것도 이렇게 해야할까요..?!

 

답변 1

0

김현진님의 프로필 이미지
김현진
지식공유자

안녕하세요 rosy 님

.env 파일을 .gitignore에 등록했던 이유는 로컬 환경에 작성한 .env의 내용은 Airflow 컨테이너가 바라볼 필요가 없기 때문이었습니다.

그런데 .env 파일에 민감정보를 넣고 git 을 이용하여 배포하는 순간 .env에 존재하는 민감정보가 github에 올라가므로 좋은 방법은 아닌 것 같습니다.

그래서 이 경우 가장 좋은 것은 variable에 등록하고 꺼내는 방법일 것 같습니다.

 

그리고 uri와 file_path는 굳이 환경변수로 셋팅할 필요가 없을 듯 합니다.

넥슨 API를 이용하여 추출할 DAG이 여러 개 생긴다면 그때마다 환경변수로 정의 후 꺼내오는 것보다 그냥 DAG에 직접 넣는 것이 낫습니다.

api_key만 variable에서 꺼내오도록 오퍼레이터의 로직을 수정하고, api_key 파라미터는 task 파라미터로써 굳이 입력받지 않아도 될 것 같습니다. (넥슨 API 키가 여러 개여서 선택해야 하는 경우가 아니고 단 하나이므로)

 

 

rosy님의 프로필 이미지
rosy
질문자

답변 감사합니다!! 다시 해보도록 하겠습니다 !

rosy님의 프로필 이미지
rosy

작성한 질문수

질문하기