Azure App Service介绍
Azure App Service是一个典型的PaaS,主要用于hosting web应用程序。有了App Service,开发人员就不需要自己来管理Web应用的底层架构了。
在传统开发过程中,如果开发、部署一个Web应用的话,需要:
- 创建VM
- 安装Web/应用服务器
- 部署应用
- 安装安全补丁/进行系统维护
有了Azure App Service,你只需要部署自己的应用。
- Azure App Service是基于HTTP的一项服务,用于host web应用,REST API,及手机应用程序的后台。目前支持的语言包括:.NET, .NET Core, .Java, Ruby, Python, Node.js, PHP.
- 无论选择Windows还是Linux环境,都可以容易的进行扩容。
- 通过使用Azure App Service,可以在你的应用之上添加很多Azure的服务,比如:security, load balancing, autoscaling. 同时可以非常容易的和CI/CD进行结合。
同时App Service还可以:
- 将多个Web应用部署到Azure App Service
- 将VM作为App Service的一部分来进行管理
- 方便的进行扩容。因为App Service的底层还是通过VM来运作的,因此可以通过增加底层VM数量来进行扩容。
- 底层VM可以选择Windows或Linux
- 可以通过Azure AD, Facebook, Google等进行认证
App Service有以下四种:
- Web Apps
- Mobile Apps
- API Apps
- Logic Apps (工作流,类似于AWS中的Step Function)
App Service Pricing
需要注意,对于免费的plan(F1),每天只有60分钟的CPU时间。但对于D1,可以有240 CPU minutes / day。
在Azure Portal中创建Web App
创建Web App
进入Portal,选择App Services,单击Create并进行如下配置:
- Subscription
- Resource Group
- Name: lcodingwebapop
- Publish: Docker Container
- OS: Linux
- Region: Central US
- Linux Plan
- Pricing plan: change to Basic B1


配置Docker相应选项:
- Options: Single Container
- Image Source: Quickstart
- Sample: NGINX

单击“Review + Create”,然后单击“Create”
稍等片刻,就会创建成功。
测试Web App
进入对应的Web App:

单击Web App对应的URL,比如我这里就是:https://lcodingwebapp.azurewebsites.net
可以看到Web App对应的页面。

单击“Monitoring”,就可以看到统计信息:

通过Azure CLI/Cloudshell创建Web App
配置Storage account
在Azure Portal中单击右上方的Cloud Shell图标,选择Bash。
配置Storage account:

单击“Create Storage”之后,稍等片刻,就能看到Bash命令行。
创建App Service Plan
运行如下命令创建App Service Plan:
az appservice plan create --name <App service plan name> --resource-group <resource group name> --is-linux也可以指定SKU:
az appservice plan create --name lcodingplan --resource-group lcoding-rg --sku B1创建一个Web App:
az webapp create --name lcodingapp --plan lcodingplan --resource-group lcoding-rg也可以指定Docker image:
az webapp create --resource-group <resource group name> --plan <App service plan name> --name <web app name> --deployment-container-image-name nginx测试Web App
进入Azure Portal, App Services,就能通过URL来测试Web App了。
将静态站点部署到Azure
使用Cloud Shell
进入Cloud Shell,选择Bash(或Powershell)
运行如下命令创建一个基本站点并部署到Azure:
mkdir demoweb
cd demoweb
echo "building..." >> index.html
az webapp up --location westeurope --name lcodingsitedemo --html部署结束后就可以通过类似 http://lcodingsitedemo.azurewebsites.net 这样的URL来访问了。
在本地使用Azure CLI
可以构建React/Vue应用之后然后部署到Azure:
cd vuedemo
npm run build
cd dist
az webapp up --location westeurope --name lcodingsitedemo --html更改App设置
可以通过命令行更改App的设置,比如运行时版本等:
az webapp config set --linux-fx-version "DOTNETCORE|3.1" --resource-group <groupname> --name <appname>
az webapp config set --php-version 7.0 --resource-group <groupname> --name <appname>
az webapp config set --python-version 3.9 --resource-group <groupname> --name <appname>
az webapp config set --resource-group <groupname> --name <appname> --java-version 1.8 --java-container Tomcat --java-container-version 9.0
az webapp config set --resource-group <groupname> --name <appname> --settings WEBSITE_NODE_DEFAULT_VERSION=16.15.1App Service Logging features
通过FTP客户端
进入App Service,Monitoring, App Service logs,并进行如下配置:

进入Deployment Center,就能看到FTP credentials:

然后就可以通过WinSCP或类似工具登录并查看App Service中的文件了。
在LogFiles/http/RawLogs中,就能看到日志信息了。
通过CLI下载log
az webapp log download --name DOCKER_CONTAINER_NAME --resource-group YOUR_RESOURCE_GROUP