Запуск приложения fastapi с использованием uvicorn на сервере ubuntu - PullRequest
0 голосов
/ 14 июля 2020

Я имею дело с депонированием проекта, сделанным на FastAPI, на удаленный сервер ubuntu. Я попробую запустить проект с терминала (используя соединение S SH) командой

gunicorn -k uvicorn.workers.UvicornWorker main:app

Результат будет

gunicorn -k uvicorn.workers.UvicornWorker main:app
[2020-07-14 15:24:28 +0000] [23102] [INFO] Starting gunicorn 20.0.4
[2020-07-14 15:24:28 +0000] [23102] [INFO] Listening at: http://127.0.0.1:8000 (23102)
[2020-07-14 15:24:28 +0000] [23102] [INFO] Using worker: uvicorn.workers.UvicornWorker
[2020-07-14 15:24:28 +0000] [23104] [INFO] Booting worker with pid: 23104
[2020-07-14 15:24:28 +0000] [23104] [INFO] Started server process [23104]
[2020-07-14 15:24:28 +0000] [23104] [INFO] Waiting for application startup.
[2020-07-14 15:24:28 +0000] [23104] [INFO] Application startup complete.

Но мне нужно, чтобы проект был доступен по IP-адресу сервера. Если я попробую что-то вроде

uvicorn main:app --host 66.226.247.55 --port 8000 

, я получу

INFO:     Started server process [23308]
INFO:     Waiting for application startup.
INFO:     Connected to database postgresql://recognition:********@localhost:5432/reco
INFO:     Application startup complete.
ERROR:    [Errno 99] error while attempting to bind on address ('66.226.247.55', 8000): cannot assign requested address
INFO:     Waiting for application shutdown.
INFO:     Disconnected from database postgresql://recognition:********@localhost:5432/reco
INFO:     Application shutdown complete.

Где 66.226.247.55 - внешний IP-адрес из экземпляров облачной платформы Google Как мне запустить проект, чтобы к нему можно было получить доступ через IP?

Ответы [ 2 ]

1 голос
/ 14 июля 2020

--host должно быть локальным адресом вашего сервера GCP.

uvicorn main:app <b>--host 0.0.0.0</b> --port 8000

и теперь доступ к приложению осуществляется по http://66.226.247.55:8000

Примечание: вы должны открыть свой 8000 порт сервера GCP.

0 голосов
/ 14 июля 2020

Вы не можете запустить приложение быстрого api на локальном удаленном сервере в GCP.

Вы должны развернуть свое приложение в GCP. Другими словами, вам нужно запустить эту команду на удаленном сервере, а не на вашем локальном хосте.

...