如何将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
    • <app-name>是你的应用程序的名称,你可以选择一个名称或让Azure自动生成一个。

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

使用Azure CLI进行部署

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

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

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

    az login
  3. 使用以下命令将应用程序代码部署到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"
  1. 使用以下命令将你的本地Git仓库关联到Azure应用服务:

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

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

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

    git remote add azure 
    git push azure master
    • <deployment-url>是你在步骤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 
    • <app-name>是你的应用程序的名称。
    • <resource-group-name>是你的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://<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应用服务。希望这个教程对你有所帮助!

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

转载请注明作者:王大神

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

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

相关推荐

  • 如何使用Python提取PPT中的文本并保存为文本和Word文件

    你是否曾经遇到过需要从PPT文件中提取文本的情况?或许你正在准备一个报告,但需要将PPT中的文本导出到文本或Word文件中。本教程将教你如何使用Python来实现这个任务。 开头小故事 在一个忙碌的工作日,你收到了一…

    2023年10月19日
    00
  • Python 包的可选依赖管理:了解 `extras_require`

    刚开始学 Python 的小张,热衷于编写自己的 Python 包并分享给大家。但在某天,他遇到了一个棘手的问题:如何为他的包管理不同的依赖?他不想让每个使用他包的用户都安装所有的依赖,只想根据使用情况来选择性地安…

    2023年10月9日
    00
  • ChatGPT发送消息没有响应问题解决办法

    最近使用ChatGPT的时候总会有发送消息没有响应,关闭浏览器修改DNS之后也没有什么用,最终排查发现是打开了ChatGPT的中文alpha测试的原因。所以,清空浏览器cookies之后,重新登陆ChatGPT,不要加入alpha测试就可以…

    2024年3月12日
    00
  • 使用Python编写小说章节批量下载器

    在本教程中,我们将学习如何使用Python编写一个小说章节批量下载器。这个工具可以帮助你下载小说的所有章节并保存为文本文件,以便离线阅读。我们将使用Python的Requests库来获取网页内容,Beautiful Soup库来解析H…

    2023年9月21日
    00
  • 使用Python创建带有特殊二维码的教程

    有一天,王大神在他的办公室里坐着,思考着如何将编程技能与二维码相结合,以创建一种特殊的二维码。这个特殊的二维码不仅可以存储信息,还可以嵌入一些有趣的元素。于是,他开始了一项探索之旅,想要与你分享他的…

    2023年10月14日
    00
  • 爱快多条线路都有IPV6时怎么开启多条线路IPV6

    随着互联网的不断发展,IPv4地址空间逐渐枯竭,这意味着我们需要采用新的技术来满足不断增长的设备连接需求。IPv6作为下一代互联网协议,为我们提供了更大的地址空间、更高的安全性和更好的性能。如果你的宽带运营…

    2023年5月3日
    00
  • 大神网自用chatgpt prompt分享和不算教程的教程

    大家有了chatgpt但都不怎么会用,单纯的跟chatgpt聊天,然后还需要自己整理内容。今天分享一下自己的心得和prompt。 首先如果你要写一篇通用的热点新闻 prompt: —————————————— 根据我…

    2023年11月13日
    00
  • 释放Ubuntu Linux中`/boot`分区的空间

    你是否曾经遇到过在Ubuntu Linux中的/boot分区空间不足的问题?这个问题可能会导致系统无法正常更新或安装新的内核,从而影响系统的稳定性和安全性。在本教程中,我们将探讨如何释放/boot分区的空间,以便顺利进行…

    2023年10月28日
    00
  • 用python实现简单的区块链

    区块链技术已经成为当今数字领域的热门话题,它的应用范围从加密货币到供应链管理等各个领域。了解区块链的基本概念是掌握这一新兴技术的第一步。在本教程中,我们将使用Python来创建一个简单的区块链,以帮助你理…

    2023年1月19日
    00
  • 编程的奇妙之旅:Python多线程爬虫下载PDF教材

    有一天,当我坐在电脑前,思考着编程的奇妙之处时,一种冒险的感觉涌上心头。我想,为什么不用编程来探索互联网的深处,下载一些有趣的教材呢?于是,我开始了这次奇妙的编程之旅,带着好奇心和激情,我将向你展示…

    2023年10月4日
    00