有时候我们用Flask或者Django写一个简单的网页,想部署给大家,但是没有服务器。此时除了购买云服务,我们还可以免费使用微软Azure提供的应用服务进行部署。
首先,我们使用Flask编写一个非常简单的后端接口,如下图所示:
现在,我不想买服务器,但我想在互联网上部署它。此时,我们可以使用Azure的应用服务功能。
首先,我们申请一个Azure账户。Azure的官网是:Microsoft Azure[1].我们只需要像普通网站一样注册一个账号。Azure会在注册后发给你12个月的免费云服务器,如下图所示。你可以用这个服务器做很多事情。但是我们今天用不到这个云服务器.
拥有Azure帐户后,我们需要安装一个叫做Azure-cli的东西。有关Azure-cli的安装说明,请参考Install the Azure CLI | Microsoft Docs[2].请在此根据您的操作系统检查安装说明。我以macOS为例,用自制程序安装:
在brewerinstallazure-cli安装完成后,我们需要使用azure-CLI登录帐户并输入:
此时会弹出一个网页,登录网页上新注册的账号即可完成登录。登录完成后,网页显示以下内容:
终端窗口显示如下图所示:
下一步是开始部署。首先,在终端中输入我们刚刚创建的Flask项目的根目录,并确保有两个文件:requirements.txt和app.py可以通过以下命令导出requirements.txt:
此时,pipfreezerequirements.txt显示了创建虚拟环境的重要性。有了虚拟环境,只导出这个项目需要的第三方库,不导出无关的库。
而app.py是网站的入口程序,也就是我们设置FLASK_APP环境变量指向的程序。
在这两件事情完成之后,我们只需要执行以下命令:
Azwebappup-skuf1-namekingname,其中参数-skuf1必须存在,表示使用了自由定价策略。如果不添加此参数,Azure会将您的网站部署到收费策略中。
和- name kingname意味着您的项目名是kingname。整个部署过程大约需要2分钟。运行效果如下图所示:
现在,我们访问:http://kingname.azurewebsites.net可以看到新部署的网站:
接下来,我们需要更新后端代码:
更改代码,当您想要重新部署时,只需再次执行它:
Azwebappup可以轻松更新网站程序。如下图所示:
Azure的应用服务本身支持直接部署Django和Flask网站。使用其他后端框架也没关系,或者你的程序不是网站,而是一个长时间运行的普通Python脚本也没关系。应用服务还提供指定启动命令的功能。具体操作可以阅读其官方文档:配置 Linux Python 应用 - Azure App Service | Microsoft Docs[3].也可以点击左下角“阅读原文”直接打开Azure应用服务的帮助文档。
参考资料
[1]微软Azure : https://portal.azure.com/
[2]
安装Azure命令行界面|微软文档: https://docs.microsoft.com/zh-cn/cli/azure/install-azure-cli?
[3]
配置Linux Python应用-Azure App Service | Microsoft docs : https://docs . Microsoft.com/zh-cn/Azure/App-Service/configure-language-Python # customize-startup-command?WT.mc_id=DT-MVP-5003916