如何将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日

相关推荐

  • 如何使用OpenAI的Web UI API进行文本到图像生成

    嗨,大家好!如果你对使用OpenAI的Web UI API进行文本到图像生成感到困惑,不用担心,我将为你提供一份详细的教程。在这个教程中,我将向你介绍如何设置API,构建请求,获取生成的图像以及如何修改一些重要的参数。…

    2023年9月22日
    00
  • 如何打造自己的开发工具箱:一个深入探讨的教程

    当李华从业界前辈那里听说 JetBrains Toolbox 的时候,他的内心被深深吸引了。作为一个对编程充满热情的初学者,李华对此表示了浓厚的兴趣。他想要为自己在 Python 上制作的各种小工具整合成一个完整的工具箱,如同…

    2023年10月9日
    00
  • 如何使用Python创建图书馆座位预约系统

    有一天,你突然想要去图书馆学习,但是你担心座位会被抢光。这时候,一个伟大的想法闪过你的脑海:为什么不创建一个自动预约图书馆座位的系统呢?这篇文章将向你展示如何使用Python创建一个可以在微信公众号或浏览…

    2023年9月20日
    00
  • 今日头条自动爬虫技巧:如何获取头条文章和图片链接

    在如今数字化的时代,自动化的数据获取方法如爬虫技术已成为数据分析、研究和营销中不可或缺的一部分。那么,你是否想过从如今日头条这样的巨大新闻平台上自动获取新闻内容及其相关图片呢?如果你的答案是肯定的,…

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

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

    2023年12月2日
    00
  • 微软Edge浏览器加入AI图像生成功能

    微软Edge浏览器最新版本引入了令人激动的功能:AI图像生成,借助OpenAI的最新DALL∙E模型,用户可以在浏览器内轻松生成图像,满足社交、展示和其他用途的视觉需求。这一功能的引入使Edge浏览器成为首个融入AI图像生…

    2023年4月11日
    00
  • Python 依赖管理的优化:告别手动`pip freeze`

    李华是一个前端开发者,最近他决定尝试Python开发。一切都很顺利,直到他开始处理Python的依赖管理。每次他添加新的库,他都需要手动执行pip freeze并更新requirements.txt。李华很困惑:为什么Python不能像前端的n…

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

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

    2023年10月20日
    00
  • Ubuntu 20.04 镜像安装与源更换指南

    故事发生在一位IT工程师的电脑前,他正在尝试安装Ubuntu 20.04操作系统,以准备进行一项重要的开发任务。然而,他的安装过程遇到了一个令人头疼的问题:下载速度太慢了!由于他所在的地区与Ubuntu官方源之间的网络…

    2023年10月19日
    00
  • 使用FastAPI和Edge TTS创建自定义文本转语音应用

    有时候,你可能需要一个自定义的文本转语音(TTS)应用,以将文字转化为声音。这可以用于语音助手、有声书、自动化通知等各种应用场景。在这篇教程中,我们将介绍如何使用FastAPI和Edge TTS创建一个简单但功能强大…

    2023年9月14日
    06