如何使用 Firebase 托管托管 FastAPI 应用程序

问题描述 投票:0回答:1

这是我第一次使用 Firebase 托管。我正在按照 this 教程来托管我的示例 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 CLI 生成的

firebase-hosting-merge.yml
文件 -

# 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 build 命令来构建此映像,而不是直接运行 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 响应。如果有人能帮助我解决这个问题,我将非常感激。

谢谢你。

python python-3.x firebase fastapi firebase-hosting
1个回答
0
投票

Firebase 托管适用于静态文件。 Firebase 函数用于运行 HTTP 端点。

这是您要使用的库:https://github.com/firebase/firebase-functions-python

它应该引导您进行可能需要的任何辅助设置。

© www.soinside.com 2019 - 2024. All rights reserved.