Python 无法在azure web应用程序上部署flask应用程序

Python 无法在azure web应用程序上部署flask应用程序,python,azure,flask,azure-devops,Python,Azure,Flask,Azure Devops,我一直在尝试在azure web应用程序上部署一个简单的python应用程序。 我阅读的所有教程都建议flask应用程序只能与linux web应用程序一起部署 当我尝试使用azure linux web app执行此操作并设置部署方法时,python构建不受支持。 显示的唯一选项是用于构建的节点、php ruby和asp.net 我没有找到任何关于如何在windows web应用程序上实现这一点的教程 我的build.yml文件如下所示: variables: ConnectedServi

我一直在尝试在azure web应用程序上部署一个简单的python应用程序。 我阅读的所有教程都建议flask应用程序只能与linux web应用程序一起部署

当我尝试使用azure linux web app执行此操作并设置部署方法时,python构建不受支持。 显示的唯一选项是用于构建的节点、php ruby和asp.net

我没有找到任何关于如何在windows web应用程序上实现这一点的教程

我的build.yml文件如下所示:

variables:
  ConnectedServiceName: 'azure_first_connection'
  WebAppName: 'STABACKEDNTRAIN'
trigger:
- master

pool:
  name: Hosted Ubuntu 1604

steps:
- task: UsePythonVersion@0
  inputs:
    versionSpec: '3.6'
    architecture: 'x64'

- script: python -m pip install --upgrade pip setuptools wheel
  displayName: 'Install tools'

- script: pip install -r requirements.txt
  displayName: 'Install requirements'

- task: ArchiveFiles@2
  inputs:
    rootFolderOrFile: '$(Build.SourcesDirectory)'
    archiveType: 'zip'
    archiveFile: '$(Build.ArtifactStagingDirectory)/Application$(Build.BuildId).zip'
    replaceExistingArchive: true
    verbose: # Optional

- task: AzureRMWebAppDeployment@4
  displayName: Azure App Service Deploy
  inputs:
    appType: webAppLinux
    RuntimeStack: 'PYTHON|3.6'
    ConnectedServiceName: $(ConnectedServiceName)
    WebAppName: $(WebAppName)
    Package: '$(Build.ArtifactStagingDirectory)/Application$(Build.BuildId).zip'


    StartupCommand: 'gunicorn --bind=0.0.0.0 application'
my application.py的代码是

from app import app
if __name__ == "__main__":
    app.run()

我对azure web应用程序完全陌生。你能帮我一下吗?

Microsoft网站上提供了一些关于如何在Azure web App上部署Python应用的教程

是一个指南,向您展示如何从azure门户部署到azure web app

是一个指南,向您展示如何从Azure管道将python应用部署到Azure应用服务

是一个关于如何从VScode部署python应用程序的教程

添加: StartupCommand应指向右侧start up.py文件中Flask app对象的右侧。请检查有关启动命令的更多信息

如果您的Flask应用程序的主模块为application.py,且该文件中的Flask应用程序对象名为app。命令应该如下所示

StartupCommand:'gunicorn--bind=0.0.0.0应用程序:应用程序'

更新:

要取消将源文件夹包括在已部署的工件中,还需要将
includeRootFolder
特别设置为false。或者您的项目将部署到wwwroot
wwwroot/s/

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

希望以上内容对您有所帮助。

Microsoft网站上提供了一些关于如何在Azure web App上部署Python应用程序的教程

是一个指南,向您展示如何从azure门户部署到azure web app

是一个指南,向您展示如何从Azure管道将python应用部署到Azure应用服务

是一个关于如何从VScode部署python应用程序的教程

添加: StartupCommand应指向右侧start up.py文件中Flask app对象的右侧。请检查有关启动命令的更多信息

如果您的Flask应用程序的主模块为application.py,且该文件中的Flask应用程序对象名为app。命令应该如下所示

StartupCommand:'gunicorn--bind=0.0.0.0应用程序:应用程序'

更新:

要取消将源文件夹包括在已部署的工件中,还需要将
includeRootFolder
特别设置为false。或者您的项目将部署到wwwroot
wwwroot/s/

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

希望以上内容对您有所帮助。

您是否有机会尝试以下指南。有更新吗?嗨@LeviLu MSFT。非常感谢你的努力。是的,我已经一字不差地遵循了第二个指南URL,仍然无法部署一个简单的应用程序。我的管道成功完成了每一步。但是一旦我点击了URL,我就得到了应用程序错误。我无法诊断出什么问题。你能分享你的构建yaml吗?也可以访问这个网站(https://.scm.azurewebsites.net)检查代码是否已部署到azure web应用程序。并确保start命令指向正确的startup.py文件。@levlu MSFT请查看我的build.yml文件。代码就在那里,它指向正确的启动文件。我测试了构建yaml,发现
StartupCommand
没有指定Flask app对象。请查看下面我的更新,您是否有机会尝试下面的指南。有更新吗?嗨@LeviLu MSFT。非常感谢你的努力。是的,我已经一字不差地遵循了第二个指南URL,仍然无法部署一个简单的应用程序。我的管道成功完成了每一步。但是一旦我点击了URL,我就得到了应用程序错误。我无法诊断出什么问题。你能分享你的构建yaml吗?也可以访问这个网站(https://.scm.azurewebsites.net)检查代码是否已部署到azure web应用程序。并确保start-up命令指向正确的startup.py文件。@LeviLu MSFT请查看我的build.yml文件。代码就在那里,它指向正确的启动文件。我测试了构建yaml,发现
StartupCommand
没有指定Flask app对象。请查看下面我的最新消息Hi@Shivangi Bhardwaj有一段时间没有收到你的消息了,这个案子进展如何,你最终成功了吗?Hi@Shivangi Bhardwaj有一段时间没有收到你的消息了,这个案子进展如何,你最终成功了吗?