Azure云计算教程03 - App service


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

image
image

image
image

配置Docker相应选项:

  • Options: Single Container
  • Image Source: Quickstart
  • Sample: NGINX

image
image

单击“Review + Create”,然后单击“Create”

稍等片刻,就会创建成功。

测试Web App

进入对应的Web App:

image
image

单击Web App对应的URL,比如我这里就是:https://lcodingwebapp.azurewebsites.net

可以看到Web App对应的页面。

image
image

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

image
image

通过Azure CLI/Cloudshell创建Web App

配置Storage account

在Azure Portal中单击右上方的Cloud Shell图标,选择Bash。

配置Storage account:

image
image

单击“Create Storage”之后,稍等片刻,就能看到Bash命令行。

创建App Service Plan

运行如下命令创建App Service Plan:

bash
az appservice plan create --name <App service plan name> --resource-group <resource group name> --is-linux

也可以指定SKU:

bash
az appservice plan create --name lcodingplan --resource-group lcoding-rg --sku B1

创建一个Web App:

bash
az webapp create --name lcodingapp --plan lcodingplan --resource-group lcoding-rg

也可以指定Docker image:

bash
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:

bash
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:

bash
cd vuedemo
npm run build
cd dist
az webapp up --location westeurope --name lcodingsitedemo --html

更改App设置

可以通过命令行更改App的设置,比如运行时版本等:

bash
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.1

App Service Logging features

通过FTP客户端

进入App Service,Monitoring, App Service logs,并进行如下配置:

image
image

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

image
image

然后就可以通过WinSCP或类似工具登录并查看App Service中的文件了。

在LogFiles/http/RawLogs中,就能看到日志信息了。

通过CLI下载log

bash
az webapp log download --name DOCKER_CONTAINER_NAME --resource-group YOUR_RESOURCE_GROUP

文章作者: 逻思
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 逻思 !