欢迎来到本教程!在这里,你将学习如何将你的Python Web应用(可以是Django或Flask)部署到Azure应用服务。Azure应用服务是一项完全托管的Web托管服务,支持在Linux服务器环境中托管的Python应用。让我们开始吧!
示例应用程序
在本教程中,我们将提供两种Python框架的示例应用程序:Flask和Django。你可以选择其中一种来继续。示例应用程序可从以下链接下载或克隆到本地工作站:
要在本地运行示例应用程序,请按照以下步骤进行:
Flask 示例
-
打开终端并进入应用程序文件夹:
cd msdocs-python-flask-webapp-quickstart
-
为应用创建一个虚拟环境(virtual environment):
python3 -m venv .venv source .venv/bin/activate # 如果你使用的是Windows,请使用 .venv\Scripts\activate
-
安装应用程序的依赖项:
pip install -r requirements.txt
-
运行应用:
flask run
-
在Web浏览器中访问示例应用,地址为 http://localhost:5000。
Django 示例
-
打开终端并进入应用程序文件夹:
cd msdocs-python-django-webapp-quickstart
-
为应用创建一个虚拟环境(virtual environment):
python3 -m venv .venv source .venv/bin/activate # 如果你使用的是Windows,请使用 .venv\Scripts\activate
-
安装应用程序的依赖项:
pip install -r requirements.txt
-
运行应用:
python manage.py runserver
-
在Web浏览器中访问示例应用,地址为 http://localhost:8000。
现在你已经成功在本地运行了示例应用程序,让我们继续将它部署到Azure应用服务。
在Azure中创建Web应用
要在Azure中托管你的应用程序,你需要创建一个Azure应用服务的Web应用。你可以使用多种方式来完成这个任务,包括Azure门户、VS Code、Azure命令行界面(CLI)等。
使用Azure CLI创建Web应用
首先,确保你已经安装了Azure CLI并登录到你的Azure帐户。
使用Azure CLI的az webapp up
命令可以在单个步骤中创建必需的资源并部署应用程序。运行以下命令:
az webapp up --runtime PYTHON:3.9 --sku B1 --logs
--runtime
参数指定应用程序使用的Python版本,这里我们选择Python 3.9。你可以运行az webapp list-runtimes --os linux --output table
命令来查看所有可用的运行时版本。--sku
参数定义应用服务计划的大小(CPU和内存)以及成本。在本示例中,我们使用B1(基本)服务计划,这将在Azure订阅中产生少量成本。你可以查看应用服务定价页以获取完整的服务计划列表。--logs
标志配置了在启动Web应用后立即启用查看日志流所需的默认日志记录。
该命令可能需要几分钟才能完成。完成后,它将提供一个URL,你可以在其中访问部署的应用程序。
恭喜!你已经在Azure中成功创建了Web应用。现在,让我们将应用程序代码部署到Azure。
将应用程序代码部署到Azure
Azure应用服务支持多种将应用程序代码部署到Azure的方法,包括支持GitHub Actions和所有主要的CI/CD工具。在这里,我们将介绍如何从本地工作站将代码部署到Azure。
使用VS Code部署
在VS Code中,你可以使用Azure扩展包来进行部署。首先,确保你已经安装了Azure扩展包。
-
打开VS Code,并在应用程序文件夹中打开终端。
-
使用以下命令登录到Azure:
az login
-
使用以下命令将应用程序代码部署到Azure:
az webapp up --name
--runtime PYTHON:3.9 --sku B1 --logs <app-name>
是你的应用程序的名称,你可以选择一个名称或让Azure自动生成一个。
这将自动创建所需的资源并部署你的应用程序。
使用Azure CLI进行部署
如果你喜欢使用命令行界面,你也可以使用Azure CLI将应用程序代码部署到Azure。
-
打开终端并进入应用程序文件夹。
-
使用以下命令登录到Azure:
az login
-
使用以下命令将应用程序代码部署到Azure:
az webapp up --name
--runtime PYTHON:3.
9 --sku B1 --logs
- <app-name>
是你的应用程序的名称,你可以选择一个名称或让Azure自动生成一个。
这将自动创建所需的资源并部署你的应用程序。
### 使用本地Git进行部署
如果你使用本地Git仓库来管理你的应用程序代码,你也可以使用Git来将应用程序部署到Azure。
1. 打开终端并进入应用程序文件夹。
2. 使用以下命令将应用程序代码提交到本地Git仓库:
```bash
git init
git add .
git commit -m "Initial commit"
-
使用以下命令将你的本地Git仓库关联到Azure应用服务:
az webapp deployment source config-local-git --name
--resource-group <app-name>
是你的应用程序的名称。<resource-group-name>
是你的Azure资源组的名称。
-
使用以下命令获取Git部署凭据:
az webapp deployment list-publishing-credentials --name
--resource-group -
记下其中一个用户名和密码。
-
使用以下命令将你的代码推送到Azure应用服务:
git remote add azure
git push azure master <deployment-url>
是你在步骤4中获取的Git部署URL。
这将自动将你的应用程序代码部署到Azure。
浏览应用
现在,你的Python Web应用程序已成功部署到Azure应用服务。你可以在Web浏览器中使用以下URL访问已部署的应用程序:http://
恭喜!你已经成功将Python应用程序部署到Azure应用服务。现在你可以与全世界分享你的Web应用了!
流式传输日志
Azure应用服务会捕获已输出到控制台的所有消息,以帮助你诊断应用程序的问题。如果你的应用程序包含了print()
语句或其他日志记录代码,你可以使用以下步骤查看日志:
-
使用Azure CLI配置Azure应用服务以将日志记录到文件系统:
az webapp log config --web-server-logging filesystem --name
--resource-group <app-name>
是你的应用程序的名称。<resource-group-name>
是你的Azure资源组的名称。
-
使用以下命令流式传输日志:
az webapp log tail --name
--resource-group
刷新你的应用程序主页或尝试发出其他请求,以生成一些日志消息。你将看到类似下面的输出:
Starting Live Log Stream ---
2023-09-19T10:30:52.740703322Z Request for index page received
2023-09-19T10:30:52.740740222Z 169.254.130.1 - - [19/Sep/2023:10:30:52 +0000] "GET / HTTP/1.1" 200 1360 "https://<app-name>.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2023-09-19T10:30:52.841043070Z 169.254.130.1 - - [19/Sep/2023:10:30:52 +0000] "GET /static/bootstrap/css/bootstrap.min.css HTTP/1.1" 200 0 "https://<app-name>.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2023-09-19T10:30:52.884541951Z 169.254.130.1 - - [19/Sep/2023:10:30:52 +0000] "GET /static/images/azure-icon.svg HTTP/1.1" 200 0 "https://<app-name>.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2023-09-19T10:30:53.043211176Z 169.254.130.1 - - [19/Sep/2023:10:30:53 +0000] "GET /favicon.ico HTTP/1.1" 404 232 "https://<app-name>.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2023-09-19T10:31:01.304306845Z Request for hello page received with name=David
2023-09-19T10:31:01.304335945Z 169.254.130.1 - - [19/Sep/2023:10:31:01 +0000] "POST /hello HTTP/1.1" 200 695 "https://<app-name>.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2023-09-19T10:31:01.398399251Z 169.254.130.1 - - [19/Sep/2023:10:31:01 +0000] "GET /static/bootstrap/css/bootstrap.min.css HTTP/1.1" 304 0 "https://<app-name>.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2023-
09-19T10:31:01.430740060Z 169.254.130.1 - - [19/Sep/2023:10:31:01 +0000] "GET /static/images/azure-icon.svg HTTP/1.1" 304 0 "https://<app-name>.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
恭喜!你现在知道如何查看你的应用程序的日志以进行故障排除。
清理资源
在使用完本示例应用程序后,你可以从Azure中删除该应用的所有资源,以避免产生额外的费用并保持你的Azure订阅整洁。最快的方法是删除资源组,这将删除资源组中的所有资源。
使用Azure CLI,你可以运行以下命令来删除资源组:
az group delete --name <resource-group-name> --no-wait
--no-wait
参数允许命令在操作完成之前返回。
恭喜你完成了本教程!现在你知道如何将Python Web应用程序部署到Azure应用服务。希望这个教程对你有所帮助!
未经允许不得转载:大神网 » 如何将Python Web应用部署到Azure应用服务