Приложение Flask не развертывается через Azure DevOps

В настоящее время я развертываю приложение Python flask в веб-приложении Azure, и когда я развертываю его вручную через VSCode, оно работает, но когда я развертываю его через Azure DevOps, оно не работает. Я создал конвейер выпуска, который запускает файл require.txt, а также архивирует файл, а затем конвейер выпуска, который развертывает приложение в веб-приложении.

Когда я смотрю на куду в веб-приложении, я вижу, что файлы развернуты, но приложение не запускается. Я предполагаю, что когда я развертываю его через VSCode, он создает антенну, а также развертывает пакет как zip-файл, а не как отдельные файлы, но когда я развертываю его через Azure DevOps, он развертывает все файлы по отдельности. Ниже я прикрепил фотографии своего трубопровода.

Приложение Flask не развертывается через Azure DevOps

Приложение Flask не развертывается через Azure DevOps

🤔 А знаете ли вы, что...
В Python можно легко работать с базами данных, такими как SQLite и MySQL.


50
1

Ответ:

Решено

Чтобы проверить эту проблему, я создал простое приложение Python flask и развернул его в веб-приложении Azure. Это работает без проблем. Ниже приведен мой код и шаги.

  1. Мой код в папке my_flask_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

start.txt: (Файл start.txt используется для указания команды, которую следует выполнить для запуска приложения Flask при его развертывании в Azure.)

"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'

Релизный конвейер:

  1. Test result:

Убедитесь, что команда запуска вашего приложения Flask установлена ​​правильно.