如何将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删除Excel中的指定数据

    大家好,我是王大神。今天,我将向您展示如何使用Python来删除Excel中的指定数据。Excel是一个功能强大的电子表格工具,但有时候我们需要对表格进行清理,删除不需要的数据。Python是一个出色的工具,可以帮助我们…

    2023年10月14日
    00
  • 教程:使用Python爬取抖音用户的视频

    嗨,各位技术爱好者和数据挖掘狂热者们!你是否曾经在抖音上看到一个超赞的用户,想要保存他们的视频以便离线观看?或者你是一位研究者,需要获取某个用户在一段时间内发布的所有视频?今天,我将带你进入一个令人…

    2023年10月24日
    00
  • 在Ubuntu 20.04上扩展LVM逻辑卷和文件系统的教程

    在Ubuntu 20.04服务器上,如果你需要扩展已有的LVM逻辑卷以及其文件系统,本教程将为你提供详细的步骤。我们将以一个具体的示例为基础,假设你有一个11TB的磁盘,并且想要将一个100GB的逻辑卷扩展到使用所有可用空…

    2023年12月2日
    00
  • 从汇率到Python:如何查询和换算港币对人民币汇率

    有一天,小明计划去香港旅游,但他对港币对人民币的汇率一无所知。他不想在旅行中被坑,所以决定学习如何查询和换算港币对人民币的汇率。在他的学习过程中,他发现了Python这个有趣的工具,可以帮助他轻松查询汇率…

    2023年10月20日
    00
  • Python多线程中实现弹窗式对话框:解决子线程异常提示问题

    在Python程序中,有时候我们需要在子线程中处理任务,但如果这些子线程出现异常,我们希望能够在不中断主线程的情况下,通过一个弹窗式对话框来提示用户并做出决策。这似乎是一个简单的需求,但在多线程环境下,却…

    2023年10月26日
    00
  • 如何在 Ubuntu 中设置中文界面

    在数字化时代,操作系统是我们日常工作和生活的一部分。Ubuntu,作为一种流行的Linux操作系统,提供了丰富的功能和定制选项,允许用户按照自己的需要进行设置。有时,您可能希望将Ubuntu的界面语言设置为中文,以更…

    2023年4月15日
    00
  • Python虚拟环境打包及迁移教程

    在实际开发中,我们经常会使用虚拟环境来隔离不同项目的依赖。但是,当我们需要在另一台服务器上部署相同的环境时,可能会遇到一些问题。本教程将介绍如何将 Python 虚拟环境打包,并在另一台服务器上解压后即可运…

    2024年3月17日
    00
  • 抖音WebSocket二进制解码教程:解密抖音视频流的神秘面纱

    抖音,作为全球热门的社交媒体平台,吸引了数以亿计的用户,每天都在分享各种各样的视频内容。你可能曾经想过,这些视频是如何在抖音上实时传输和播放的?答案之一就是WebSocket。WebSocket是一种用于实时通信的协…

    2023年11月2日
    00
  • 在HomePod上使用Python实现Matter语音控制:详细教程

    王大神是一个对音乐和技术充满热情的自由职业者,他充分利用自由的生活和工作方式。最近,他遇到了一个技术挑战:如何在HomePod上使用Python实现Matter语音控制。这个挑战是因为Matter的开发信息相对有限,但王大神…

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

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

    2023年11月13日
    00