Как разместить приложение FastAPI на хостинге FirebasePython

Программы на Python
Anonymous
Как разместить приложение FastAPI на хостинге Firebase

Сообщение Anonymous »

Я впервые использую хостинг Firebase. Я следую этому руководству, чтобы разместить свой пример приложения FastAPI. Но я не могу получить доступ к конечной точке, установленной в моем приложении. Я почти уверен, что напутал с командой сборки. Я не могу понять, что туда поместить.
Это мое приложение FastAPI —

Код: Выделить всё

from fastapi import FastAPI, Request
from fastapi.responses import JSONResponse

app = FastAPI()

@app.get('/hello')
async def generate_avatar(request: Request):
return JSONResponse(content={"message": "Success"}, status_code=200)

Это файл firebase-hosting-merge.yml, созданный интерфейсом командной строки Firebase -

Код: Выделить всё

# This file was auto-generated by the Firebase CLI
# https://github.com/firebase/firebase-tools

name: Deploy to Firebase Hosting on merge
'on':
push:
branches:
- main
jobs:
build_and_deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: 'pip install --no-cache-dir --upgrade -r requirements.txt && gunicorn -k uvicorn.workers.UvicornWorker app.main:app -D'
- uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: '${{ secrets.GITHUB_TOKEN }}'
firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_AGENT_AVATAR_GENERATION }}'
channelId: live
projectId: agent-avatar-generation

Я также написал файл Dockerfile и попытался использовать команду сборки docker в файле рабочего процесса слияния для создания этого образа вместо прямого запуска команд Python, но все равно я не могу получить это сработает.

Код: Выделить всё

FROM python:3.9-slim

WORKDIR /app

# Copy requirements.txt
COPY ./requirements.txt /app/requirements.txt

# Install dependencies
RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt

# Copy rest of the files
COPY ./app /app

CMD ["gunicorn", "-k", "uvicorn.workers.UvicornWorker", "app.main:app", "-d"]
Как бы я ни пытался получить доступ к конечной точке /hello, я продолжаю получать ответ 404. Я был бы очень признателен, если бы кто-нибудь помог мне с этим.
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/778 ... se-hosting

Вернуться в «Python»