웹 개발/프로젝트

[웹 크롤링 프로젝트] 06. 구름 IDE로 Fast API 간단 배포

내만 2022. 12. 2. 16:43
728x90
반응형

 

728x90
반응형

 

 

 

 

🙆‍♂️ 환경설정


0. 구름 IDE

 

https://ide.goorm.io/my/dashboard

 

goorm

구름은 클라우드 기술을 이용하여 누구나 코딩을 배우고, 실력을 평가하고, 소프트웨어를 개발할 수 있는 클라우드 소프트웨어 생태계입니다.

goorm.co

깃허브 아이디로 구름 IDE에 로그인 하시면 하나의 컨테이너를 항상 켜둘 수 있습니다.

 

별다른 설명 할 것 없이 그냥 플러스 버튼을 클릭하며 새 컨테이너를 만들어주고

 

1. FastAPI를 위한 패키지 설치

Fast API를 위한 패키지를 설치해줍니다.

그리고 추가로 API에서 필요한 라이브러리들을 설치해줍니다. 저 같은 경우에는 크롤링 API이기 때문에 BeuatifulSoup4를 설치해줬습니다.

 

2. Fast API 코드 작성

from typing import Union

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: Union[str, None] = None):
    return {"item_id": item_id, "q": q}

저는 위의 코드를 사용하지는 않았지만 예시 코드가 필요하신 분들은 위의 코드를 사용하셔도 됩니다.

 

이렇게 켤 수 있음

밑에 터미널을 통해서 api 서버 여는 코드를 치면

uvicorn index:app --reload

화면의 우측 아래에 URL로 배포되고 있는 것입니다.

 

이제 끄면 되겠다 싶지만 사실 그렇지 않습니다. 마지막 제일 중요한 설정을 해야 합니다.

 

nohup uvicorn index:app --reload > /dev/null

nohup라는 명령어를 통해서 API 서버 실행하는 코드를 백그라운드로 실행 시켜주고

> /dev/null 코드를 통해서 nohup 실행에 따른 다른 파일이 생성되지 않도록 합니다.

 

그러면 이제 배포에 성공하게 됩니다!

추가로 Fast API에 CORS 문제를 겪고 계시면

https://velog.io/@wlsdud2194/cors

위 게시물을 참고하시면 될 것 같습니다.

 

728x90
반응형