Flask 应用程序未通过 Azure DevOps 部署

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

我目前正在将 Python Flask 应用程序部署到 Azure WebApp,当我通过 VSCode 手动部署它时,它可以工作,但当我通过 Azure DevOps 部署它时,它不起作用。我创建了一个发布管道,用于运行requirements.txt 文件并存档该文件,然后创建一个发布管道,用于将应用程序部署到 web 应用程序。

当我查看 Web 应用程序中的 kudu 时,我看到文件已部署,但应用程序未运行。我的猜测是,当我通过 VSCode 部署它时,它会创建一个 antenv 并将包部署为 zip 文件而不是单个文件,但当我通过 Azure DevOps 部署时,它会单独部署所有文件。我在下面附上了我的管道的照片。

enter image description here

enter image description here

python flask azure-devops azure-pipelines
1个回答
0
投票

为了测试该问题,我创建了一个简单的 Python Flask 应用程序并将其部署到 Azure Web App。它工作没有问题。以下是我的代码和步骤。

  1. 我的代码在
    my_flask_app
    文件夹中:code

app.py:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, World!"

if __name__ == '__main__':
    app.run(debug=True)

需求.txt:

blinker==1.8.2
click==8.1.7
colorama==0.4.6
Flask==3.0.3
itsdangerous==2.2.0
Jinja2==3.1.4
MarkupSafe==2.1.5
Werkzeug==3.0.4

startup.txt:(startup.txt 文件用于指定在部署到 Azure 时启动 Flask 应用程序时应运行的命令。)

"gunicorn -w 4 -k uvicorn.workers.UvicornWorker app:app" 
  1. 管道配置:

构建管道 YAML:

trigger:
- none

pool:
  vmImage: 'ubuntu-latest'

steps:
- task: UsePythonVersion@0
  inputs:
    versionSpec: '3.x'
    addToPath: true

- script: |
    cd "$(Build.SourcesDirectory)/my_flask_app"
    python -m venv antenv
    source antenv/bin/activate
    pip install -r requirements.txt
  displayName: 'Install dependencies'

- task: ArchiveFiles@2
  inputs:
    rootFolderOrFile: '$(Build.SourcesDirectory)/my_flask_app'
    includeRootFolder: false
    archiveType: 'zip'
    archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
    replaceExistingArchive: true

- publish: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'

发布管道:

release

  1. 测试结果:

    result

请确保您的 Flask 应用程序的启动命令设置正确。

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