[python] AWS lambda layer로 필요 라이브러리 추가
Python 2022. 3. 12. 07:33

lambda 로 간단한 프로그램을 작성하여 사용하는 경우가 많은데 라이브러이들을 layer로 저장하고 사용하면 여러 lambda 함수에서 공동으로 사용할 수 있어 개발 속도를 높이는데 도움이 된다. 이 글은 인터넷 상에 있는 여러가지 방법들 중 제일 간단하고 쉽게 할 수 있는 방법에 대해 소개 한다. ◆ 라이브러리 다운로드 라이브러리는 Linux 환경에서 다운받고 그 라이브러리를 사용하여 layer를 만드는 것을 추천한다. AWS lambda에서 사용하는 python 버전도 중요하다. 본 글에서는 python 3.8 기준으로 설명할 예정이다. 먼저 라이브러리를 다운받을 폴더를 생성 후 필요한 라이브러리 들을 다운 받는다. #폴더 생성 cd $HOME mkdir -p lib/python cd lib/pyt..

[python] Docker 기반으로 Batch성 업무를 간소화 하자
Python 2021. 12. 22. 22:47

업무를 하다보면 batch성 작업을 여러 서버에서 해야 하는 일이 생긴다. 이 글에서는 python을 이용한 환경변수 읽어오기 기능으로 batch성 작업을 Docker image로 만들어서 여러 서버에서 쉽게 변수만 수정하는 방법을 설명 하려고 한다. Dockerfile 작성 본 글은 python 3.7 기반의 이미지를 사용하여 작성되었다. FROM python:3.7 COPY ./script /app/script WORKDIR /app/script RUN pip3 install -r requirements.txt ENTRYPOINT ["python", "main.py"] script 폴더에는 실행되여햐 할 파일과 lib를 설치 할 수 있는 requirements.txt가 들어 있다. requiremen..

[Python] Multiprocessing pool를 이용하여 batch job 처리
Python 2021. 12. 21. 21:59

업무적 수요로 batch성 업무를 처리하는 일은 다반사다. Python에는 제대로 된 thread 가 없어 process로 풀을 구성하여 구현하는 법을 정리한다. 프로세스 pool로 돌리기 import multiprocessing def put_data(a,b): #업무 코드 if __name__=="__main__": #풀에서 가용한 CPU 개수 설정 # pool = mp.pool(mp.cpu_count()) pool = multiprocessing.Pool(processes=6) step = 10000 idx =100000 forList =[] while(idx< 5000000): forList.append((idx, idx+step)) idx =idx + step # forList.append() ..