我一直试图在azure Web应用程序上部署一个简单的python应用程序。 我阅读的所有教程都建议,flask应用程序只能与linux Web应用程序一起部署。
当我尝试使用azure linux Web应用程序进行操作并设置部署方法时,不支持python构建。 显示的唯一构建选项是node,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'
我的application.py代码是
from app import app
if __name__ == "__main__":
app.run()
我对天青的Web应用程序完全陌生。你能帮我吗?
答案 0 :(得分:0)
Microsoft网站上提供了一些有关如何在Azure Web App上部署Python应用程序的教程。
Here是指南,向您展示如何从azure门户部署到azure Web应用。
Here是一个指南,向您展示如何从Azure Pipelines将python应用程序部署到Azure App Service
Here是有关如何从VScode部署python应用程序的教程
添加: StartupCommand应该在正确的启动.py文件中指向正确的Flask应用程序对象。请检查here以获得有关启动命令的更多信息。
如果您的Flask应用程序的主要模块是application.py,并且该文件中的Flask应用程序对象名为app。该命令应如下所示。
StartupCommand: 'gunicorn --bind=0.0.0.0 application:app'
更新:
要使部署的工件中包含的源文件夹无效,您还需要将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
希望以上内容对您有所帮助。