如何将Python Web应用部署到Azure应用服务

欢迎来到本教程!在这里,你将学习如何将你的Python Web应用(可以是Django或Flask)部署Azure应用服务。Azure应用服务是一项完全托管的Web托管服务,支持在Linux服务器环境中托管的Python应用。让我们开始吧!

示例应用程序

在本教程中,我们将提供两种Python框架的示例应用程序:Flask和Django。你可以选择其中一种来继续。示例应用程序可从以下链接下载或克隆到本地工作站:

要在本地运行示例应用程序,请按照以下步骤进行:

Flask 示例

  1. 打开终端并进入应用程序文件夹:

    cd msdocs-python-flask-webapp-quickstart
  2. 为应用创建一个虚拟环境(virtual environment):

    python3 -m venv .venv
    source .venv/bin/activate  # 如果你使用的是Windows,请使用 .venv\Scripts\activate
  3. 安装应用程序的依赖项:

    pip install -r requirements.txt
  4. 运行应用:

    flask run
  5. 在Web浏览器中访问示例应用,地址为 http://localhost:5000

Django 示例

  1. 打开终端并进入应用程序文件夹:

    cd msdocs-python-django-webapp-quickstart
  2. 为应用创建一个虚拟环境(virtual environment):

    python3 -m venv .venv
    source .venv/bin/activate  # 如果你使用的是Windows,请使用 .venv\Scripts\activate
  3. 安装应用程序的依赖项:

    pip install -r requirements.txt
  4. 运行应用:

    python manage.py runserver
  5. 在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扩展包。

  1. 打开VS Code,并在应用程序文件夹中打开终端。

  2. 使用以下命令登录到Azure:

    az login
  3. 使用以下命令将应用程序代码部署到Azure:

    az webapp up --name  --runtime PYTHON:3.9 --sku B1 --logs
    • 是你的应用程序的名称,你可以选择一个名称或让Azure自动生成一个。

这将自动创建所需的资源并部署你的应用程序。

使用Azure CLI进行部署

如果你喜欢使用命令行界面,你也可以使用Azure CLI将应用程序代码部署到Azure。

  1. 打开终端并进入应用程序文件夹。

  2. 使用以下命令登录到Azure:

    az login
  3. 使用以下命令将应用程序代码部署到Azure:

    
    az webapp up --name  --runtime PYTHON:3.

9 --sku B1 --logs


   - 是你的应用程序的名称,你可以选择一个名称或让Azure自动生成一个。

这将自动创建所需的资源并部署你的应用程序。

### 使用本地Git进行部署

如果你使用本地Git仓库来管理你的应用程序代码,你也可以使用Git来将应用程序部署到Azure。

1. 打开终端并进入应用程序文件夹。

2. 使用以下命令将应用程序代码提交到本地Git仓库:

   ```bash
   git init
   git add .
   git commit -m "Initial commit"
  1. 使用以下命令将你的本地Git仓库关联到Azure应用服务:

    az webapp deployment source config-local-git --name  --resource-group 
    • 是你的应用程序的名称。
    • 是你的Azure资源组的名称。
  2. 使用以下命令获取Git部署凭据:

    az webapp deployment list-publishing-credentials --name  --resource-group 
  3. 记下其中一个用户名和密码。

  4. 使用以下命令将你的代码推送到Azure应用服务:

    git remote add azure 
    git push azure master
    • 是你在步骤4中获取的Git部署URL。

这将自动将你的应用程序代码部署到Azure。

浏览应用

现在,你的Python Web应用程序已成功部署到Azure应用服务。你可以在Web浏览器中使用以下URL访问已部署的应用程序:http://.azurewebsites.net。如果看到默认应用程序页面,请稍等片刻,然后刷新浏览器。

恭喜!你已经成功将Python应用程序部署到Azure应用服务。现在你可以与全世界分享你的Web应用了!

流式传输日志

Azure应用服务会捕获已输出到控制台的所有消息,以帮助你诊断应用程序的问题。如果你的应用程序包含了print()语句或其他日志记录代码,你可以使用以下步骤查看日志:

  1. 使用Azure CLI配置Azure应用服务以将日志记录到文件系统:

    az webapp log config --web-server-logging filesystem --name  --resource-group 
    • 是你的应用程序的名称。
    • 是你的Azure资源组的名称。
  2. 使用以下命令流式传输日志:

    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://.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://.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://.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://.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://.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://.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://.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  --no-wait

--no-wait参数允许命令在操作完成之前返回。


恭喜你完成了本教程!现在你知道如何将Python Web应用程序部署到Azure应用服务。希望这个教程对你有所帮助!

本文由作者 王大神 原创发布于 大神网的AI博客。

转载请注明作者:王大神

原文出处:如何将Python Web应用部署到Azure应用服务

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2023年9月19日
下一篇 2023年9月19日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注