본문 바로가기
반응형

FastAPI4

[Docker] fastapi를 도커화하는 방법 python 기반의 FastAPI를 도커화 해서 파이프라인에 올리는 작업을 해야한다. FastAPI를 도커화할 때 필요했던 것들을 모두 정리하려고 한다. 1. 도커 이미지 생성 2. 도커 컨테이너 실행 3. 포트포워딩 4. 워커수 설정 1. 도커 이미지 생성 도커 이미지를 생성하기 전에 Dockerfile 을 만들어준다. Dockerfile : 애플리케이션을 Docker 컨테이너로 빌드하기 위한 파일 # Dockerfile # server image 초기설정 : python 3.9.10 버전을 사용 FROM python:3.9.10 # 작업할 경로 (해당 경로가 없다면 새로 생성됨) WORKDIR /api # 작업할 경로에 현재 코드들을 모두 복사해둔다. COPY . . # image가 빌드되었을 때 수.. 2024. 3. 7.
[FastAPI] 3. 멀티프로세싱 fastAPI는 ASGI중 한 종류인 uvicorn와 함께 비동기적인 형태로 동작한다.  * 비동기적 : 어떤 작업을 요청했을 때 그 작업이 종료될때 까지 기다리지 않고 다른 작업을 하고 있다가, 요청했던 작업이 종료되면 그에 대한 추가 작업을 수행하는 방식* 동기적 : 어떤 작업을 요청했을 때 그 작업이 종료될때 까지 기다린 후 다음 작업을 수행하는 방식 fastAPI로 mutiprocessing을 진행하기 위해 두가지 방법으로 접근을 해봤다.  1. 리스트 형태의 입력값을 받고, 해당 값들로 병렬처리하는 방법import timefrom multiprocessing import Processdef print_sum(input): num1 = input[0] num2 = input[1] .. 2023. 12. 6.
[FastAPI] 2. 라우팅 1. 용어 1.1. "라우팅"이란? 클라이언트가 서버로 보내는 HTTP 요청을 처리하는 프로세스이다. 1.2. "라우트"란? HTTP 요청 메서드의 요청을 수락하고 선택적으로 인수를 받을 수 있도록 정의된다. 요청이 특정 라우트로 전달되면 애플리케이션은 라우트 처리기(route handler)가 요청을 처리하기전에 해당 라우트가 정의되어 있는지 확인한다. 1.3. "라우트 처리기 (route handler)"란? 서버로 전송된 요청을 처리하는 함수이다. ex) 요청을 받아 데이터베이스에서 특정 데이터를 추출하는 함수 1.4. "HTTP 요청 메서드"란? HTTP 메서드 처리 유형을 정의하는 식별자이다. 표준 메서드에는 GET, POST, PUT, PATCH, DELETE등이 있다. 2. 라우팅 예시 20.. 2023. 7. 14.
[FastAPI] 1. 시작하기 1. 가상환경 설정 익숙한 pip으로 가상환경을 설정해줘도 상관없지만, 사용해보지 않은 virtualenv를 활용해보려고 한다. 1.1. virtualenv를 사용한 개발 환경 구축 #-- fastapi라는 폴더를 만들고 이 폴더 안에 가상환경을 생성 $ mkdir fastapi && cd fastapi $ python3 -m venv fastapi_env venv 모듈은 가상 환경을 설치할 폴더명을 인수로 지정 > 두번째 인수인 fastapi는 가상환경으로 사용할 폴더명이다. > 생성된 가상 환경 폴더 (fastapi)에는 파이썬 인터프리터가 설치된 lib 폴더와 가상 환경 내에서 상호작용 (가상 환경 활성화 / 비활성화 등)이 필요한 파일을 저장하는 bin 폴더가 있다. 1.2. 가상환경 활성화 / .. 2023. 7. 14.
반응형