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項目的操做演示,探索下這項服務的使用。python

 

1,首先咱們在本地建立一個Django項目hello,確認運行沒問題;linux

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

 

2,而後在項目所在的文件夾下運行:web

pip freeze > requirements.txt

這一步是爲了生成本項目所依賴的環境清單,例如docker

 

 

 

 由於應用是以Docker container的方式跑在後臺的,因此後面部署至Azure的時候容器會自動運行pip install -r requirements.txt來安裝這個應用的依賴項。django

 3,上傳至web app,運行命令:瀏覽器

az webapp up -n ruchanappdemo

運行完的截圖以下:服務器

 簡單描述一下這個過程,az webapp up這個命令會自動執行如下幾步:app

(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.

相關文章
相關標籤/搜索