Python app in Azure App Service on Linux初探

使用Azure应用托管平台服务,可以为运维人员省去大量的基础服务器的管理工作,并且可以和Azure DevOps, GitHub, BitBucket, Docker Hub, Azure Container Registry等配合使用实现持续集成和持续部署。现阶段Global Azure也推出了Azure App Service on Linux 服务,用户可以托管他们的应用在Linux环境下,目前支持大多数开发语言和版本,对Python的支持处于public preview阶段,接下来我们做一个Django项目的操作演示,探索下这项服务的使用。

1,首先我们在本地创建一个Django项目hello,确认运行没问题;

django-admin startproject hello
cd hello
python  manage.py makemigrations
python  manage.py migrate
python manage.py createsuperuser
python  manage.py runserver

2,然后在项目所在的文件夹下运行:

pip freeze > requirements.txt

这一步是为了生成本项目所依赖的环境清单,例如

因为应用是以Docker container的方式跑在后台的,所以后面部署至Azure的时候容器会自动运行pip install -r requirements.txt来安装这个应用的依赖项。

3,上传至web app,运行命令:

az webapp up -n ruchanappdemo

运行完的截图如下:

简单描述一下这个过程,az webapp up这个命令会自动执行以下几步:

(1),创建一个默认的资源组appsvc_rg_Linux_centralus

(2),创建一个默认的app plan appsvc_asp_Linux_centralus

(3),创建一个app,名称为ruchanappdemo;

(4),将项目打包,从现在的目录下部署到创建的web 服务上。

看下这条命令的参数:

目前要求的参数里,支持了指定的订阅,产品组正在把--resource-group 和--plan加进去,方便用户指定特定的资源组和应用服务计划。

上传完成后,浏览器输入https://ruchanappdemo.azurewebsites.net 发现报错了,正常,,因为我们需要把ALLOWED_HOSTS修改下:

ALLOWED_HOSTS = [‘ruchanappdemo0.azurewebsites.net‘]

修改完了重新运行更新:

az webapp up -n ruchanappdemo -l centralus #-l 代表location

最后检查结果,可以了。

几点补充说明的:

1,修改web app 的python版本:

az webapp config set --resource-group <resource-group-name> --name <app-name> --linux-fx-version "PYTHON|3.7"

2,应用的后台默认用guicorn做WSGI和http服务器,支持guicorn的自定义配置,例如:

gunicorn --bind=0.0.0.0 --timeout 600 --chdir website hello:myapp

如果要用non-Gunicorn 服务器,也可以用命令更改:

python3.7 -m aiohttp.web -H localhost -P 8080 package.module:init_func

3,每一个应用部署过程,都会先自动检查有没有Django文件,下来检查有没有Flask,如果两个框架都没找到,就运行一个默认的app出来。如果你想运行一个自定义的docker image,可以参考:https://docs.microsoft.com/en-us/azure/app-service/containers/tutorial-custom-docker-image

4,其他一些比如为应用加自定义域名,查看容器里的日志等,可以参考:https://docs.microsoft.com/en-us/azure/app-service/containers/how-to-configure-python#customize-startup-command.

最后附上一些其他的参考链接:

https://docs.microsoft.com/en-us/azure/app-service/containers/quickstart-python;

https://docs.microsoft.com/en-us/azure/app-service/containers/how-to-configure-python;

https://docs.microsoft.com/zh-cn/azure/app-service/manage-custom-dns-buy-domain.

原文地址:https://www.cnblogs.com/changruijun/p/10723794.html

时间: 2024-11-05 09:46:19

Python app in Azure App Service on Linux初探的相关文章

【Web API系列教程】3.10 — 实战:处理数据(发布App到Azure App Service)

在这最后一节中,你将把应用程序发布到Azure.在Solution Explorer中,右击项目并选择Publish. 点击Publish打开Publish Web对话框.如果你在新建项目的时候选中了Host in Cloud,那么链接和设置就已经都配置好了.在这种情况下,仅仅是需要点击Settings面板,然后选择"Execute Code First Migrations".(如果你没有在开始的时候选中"Host in Cloud",那么请跟随如下步骤)(htt

【Web API系列教程】3.10 — 实战:处理数据(公布App到Azure App Service)

在这最后一节中.你将把应用程序公布到Azure.在Solution Explorer中,右击项目并选择Publish. 点击Publish打开Publish Web对话框. 假设你在新建项目的时候选中了Host in Cloud.那么链接和设置就已经都配置好了.在这样的情况下,不过须要点击Settings面板,然后选择"Execute Code First Migrations".(假设你没有在開始的时候选中"Host in Cloud",那么请尾随例如以下步骤)(

Azure App Service

应用程序服务App Service 作用:Web 托管服务,可将ASP.NET Core Web/Framework 应用部署到 Azure Web 应用. 资源组:在其中部署和管理 Azure 资源(如 Web 应用.数据库和存储帐户)的逻辑容器. 应用服务计划:指定托管应用的 Web 服务器场的位置.大小和功能. 可以在托管多个应用时节省资金,方法是将多个 Web 应用配置为共用单个应用服务计划. 在"解决方案资源管理器"中右键单击"myFirstAzureWebApp&

在Azure Cloud Service中部署Java Web App(1)

Microsoft Azure是一个开放的,灵活的云平台,除了对自家的.Net平台有良好的支持外,对于各种开源的软件,语言,工具,框架都有着良好的支持,比如Java,Php,Python等等,你可以使用自己喜欢的语言开发任何应用部署在Azure的web site或者云服务中. Azure的云服务是Azure的一个PAAS平台,同样支持多种不同的语言和框架,并且可以基于多种不同的阈值如CPU负载,队列,定时等等实现Auto scaling等高级功能,如下图所示: 本文简单介绍如何使用Azure所提

如何将Azure DevOps中的代码发布到Azure App Service中

标题:如何将Azure DevOps中的代码发布到Azure App Service中 作者:Lamond Lu 背景 最近做了几个项目一直在用Azure DevOps和Azure App Service, 每次都要从零开始搭建从Azure DevOps向Azure App Service发布代码的环境,由于步骤比较繁琐,每次都会忘记其中几个步骤,所以在此总结一下,已备后续再次使用. Azure DevOps和Azure App Service Azure DevOps Azure DevOps

[料理佳肴] Azure App Service 及 SQL Database 默认时区的问题

如果是自架 IIS.SQL Server 服务器,取得当前时间是看服务器设定的时区在哪里,就会拿到当地时区的当前时间,但是我们使用 Azure 提供的 PaaS 服务,只管用不必管服务器,首要注意的是取得当下时间的 API 默认时区 UTC 的问题,务必在上云之前针对自己的程序调整一番. App Service App Service 要调整时区稍微容易一些,只要在"应用程序设定"中去增加一个设定名称"WEBSITE_TIME_ZONE",值输入"Taip

在Azure Cloud Service中部署Java Web App(2)

接上文. 9.在进行发布之前,需要对我们的订阅做一些设置,因为默认情况下,Azure的service end指向的是Azure global的站点,如果我们要将服务发布在Azure的中国站点,需要做下简单的设置,在Eclipse中,打开偏好设置(preference),找到Azure,在service endpoint页面中,选择"windowsazure.才能(China),选择确定: 10. 回到项目,选择myazuredeploy并单击右键,选择Azure,properties,第一项是选

Azure App Service-多语言/高可用/自动缩放的Web托管服务(1)

语雀知识库:https://www.yuque.com/seanyu/azure/appservice 公众号:云计算实战 概览 1.用来托管Web应用,移动后端及RESTful API: 2.Paas产品,无需用户管理基础结构: 3.自动缩放,高可用: 4.后端系统支持Windows 和Linux: 5.支持GitHub,Azure DevOps,Git存储库自动部署: 6.多语言:.NET, Node.js, PHP, Java, Python(Linux),HTML等 7.SLA 99.9

如何Python写一个安卓APP

前言:用Python写安卓APP肯定不是最好的选择,但是肯定是一个很偷懒的选择,而且实在不想学习Java,再者,就编程而言已经会的就Python与Golang(注:Python,Golang水平都一般),那么久Google了一下Python写安卓的APP的可能性,还真行. 既然要写个APP,那么总得要有个想法吧. 其实笔者想做两个APP来着,一个是自己写着好玩的,一个是关于运维的. 关于运维的APP,设计应该如下 可能长这样 然后设计应该是这样. 如果觉得可行的话,评论留言一下你觉得应该写进这个