我正在尝试使用 GitHub Actions 将 FastAPI 应用程序(作为 Web 应用程序)部署到 Azure 应用服务。部署似乎成功,但是当我尝试访问该应用程序时,我收到消息:
Status Code: 404
Status Message: The Resource 'Microsoft.Web/sites/my-fastapi-webapp/slots/e6dnb2bkfndyfpdx' under resource group 'my-fastapi-rg' was not found.
我没有使用任何插槽。
到目前为止我已采取的步骤:
尝试重新部署:部署始终引用不存在的插槽。
GitHub Actions 工作流程:我使用以下配置部署到 Azure:
- name: Deploy to Azure Web App
uses: azure/webapps-deploy@v3
with:
app-name: 'my-fastapi-webapp'
slot-name: 'Production'
从工作流程中删除了插槽引用,但问题仍然存在。
我的问题:
错误 - 容器 tdocs_0_40751cc1 未响应端口 8000 上的 HTTP ping,站点启动失败。查看容器日志进行调试。
您遇到的错误是由于启动命令不正确而发生的。
使用您提供的启动命令后,我遇到了同样的错误。
我将启动命令更改为以下命令,因为
apt-get update
命令提供可用软件包的列表,apt-get install -y libmagic1
安装libmagic1
库,这是python-magic
正常运行所必需的。
导航到 Azure Web 应用程序的配置部分 - > 添加
startup command
并点击保存。
apt-get update && apt-get install -y libmagic1 && gunicorn --worker-class uvicorn.workers.UvicornWorker --timeout 600 --access-logfile '-' --error-logfile '-' main:app
这是我的工作流程文件:
name: Build and deploy Python app to Azure Web App - fastapitestsample18
on:
push:
branches:
- main
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python version
uses: actions/setup-python@v1
with:
python-version: '3.12'
- name: Create and start virtual environment
run: |
python -m venv venv
source venv/bin/activate
- name: Install dependencies
run: pip install -r requirements.txt
- name: Zip artifact for deployment
run: zip release.zip ./* -r
- name: Upload artifact for deployment jobs
uses: actions/upload-artifact@v3
with:
name: python-app
path: |
release.zip
!venv/
deploy:
runs-on: ubuntu-latest
needs: build
environment:
name: 'Production'
url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
steps:
- name: Download artifact from build job
uses: actions/download-artifact@v3
with:
name: python-app
- name: Unzip artifact for deployment
run: unzip release.zip
- name: 'Deploy to Azure Web App'
uses: azure/webapps-deploy@v2
id: deploy-to-webapp
with:
app-name: 'fastapitestsample18'
slot-name: 'Production'
publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_6BE585852CEC4BCEB75B1EBBC05169D3 }}
通过 GitHub 操作成功部署应用程序。
部署后输出: