본문 바로가기

개발/Flask, Fastapi

Fastapi heroku 배포하기

2021.6.10일 기준 heroku에서 공식 지원되는 파이썬 버전은 다음과 같다.

https://devcenter.heroku.com/articles/python-support#specifying-a-python-version

 

Heroku Python Support | Heroku Dev Center

Last updated May 28, 2021 Heroku supports all popular web frameworks for Python (Django, Flask, Pyramid, and so on). For a deployment tutorial that uses a sample Django app, see Getting Started on Heroku with Python. Recognizing a Python app Heroku automat

devcenter.heroku.com

리스트를 참조해서 디렉토리 안에 runtime.txt를 만들어 준다.

python-3.8.10

이 형식대로 쓰는게 중요하다!

 

다음으로 Procfile을 만들어준다.

web: uvicorn main:app --host=0.0.0.0 --port=${PORT:-5000}

main 자리에 app=Fastapi()가 기재된 파일명을 넣어준다.

나는 app 폴더 안에 main.py가 있는 구조로 앱을 만들었는데, 한번에 배포가 되지 않아 최상위 디렉토리 안에 바로 main 파일이 있게 바꿨다. 그러니 성공! (아마 app.main:app 으로 해도 될 수도....)

 

다음으로 CLI로 

$ heroku login

$ git add .

$ git commit <commit message>

$ git push heroku HEAD:master

를 하면 된다!