在 Azure 中创建 Node.js Web 应用

Azure 应用服务提供高度可缩放、自修补的 Web 托管服务。 本快速入门演示如何将 Node.js 应用部署到 Azure 应用服务中。 使用 Azure CLI 创建 Web 应用,并使用 ZipDeploy 将 Node.js 代码示例部署到 Web 应用。

在 Azure 中运行的示例应用

可以在 Mac、Windows 或 Linux 计算机上执行此处的步骤。 安装先决条件后,大约需要五分钟完成这些步骤。

如果没有 Azure 订阅,可在开始前创建一个试用帐户

先决条件

若要完成本快速入门教程,需先执行以下操作:

下载示例

https://github.com/Azure-Samples/nodejs-docs-hello-world/archive/master.zip 下载示例 Node.js 项目并提取 ZIP 存档。

打开 index.js 并找到以下行:

var port = process.env.PORT || 1337;

应用服务会将 process.env.PORT 注入应用程序,因此代码将使用该变量来获知要侦听的端口。

在终端窗口中,导航到示例 Node.js 项目的根目录(包含 index.js 的目录)。

在本地运行应用

在本地运行应用程序,以便你能了解将它部署到 Azure 时它的外观应该是什么样的。 打开一个终端窗口并使用 npm start 脚本启动内置的 Node.js HTTP 服务器。

npm start

打开 Web 浏览器并导航到 http://localhost:1337 处的示例应用。

页面中会显示该示例应用发出的 Hello World 消息。

在本地运行的示例应用

在终端窗口中,按 Ctrl+C 退出 Web 服务器。

Note

在 Azure 应用服务中,此应用在 IIS 中使用 iisnode 运行。 为了让应用能够使用 iisnode 运行,根应用目录包含一个 web.config 文件。 此文件可以由 IIS 读取,与 iisnode 相关的设置记录在 iisnode GitHub 存储库中。

创建一个项目 ZIP 文件

请确保仍处于示例项目的根目录中。 创建一个包含项目中的所有内容的 zip 存档。 以下命令使用终端中的默认工具:

# Bash
zip -r myAppFiles.zip .

# PowerShell
Compress-Archive -Path * -DestinationPath myAppFiles.zip

随后将此 ZIP 文件上传到 Azure 并将其部署到应用服务。

配置部署用户

使用 az webapp deployment user set 命令创建部署凭据。

在 Web 应用中进行 FTP 和本地 Git 部署时需要一个部署用户。 用户名和密码都为帐户级别。 它们与 Azure 订阅凭据不同。

在以下命令中,将 <user-name> 和 <password> 替换为新的用户名和密码。 用户名必须唯一。 密码长度必须至少为 8 个字符,其中包含以下 3 种元素中的两种:字母、数字、符号。

az webapp deployment user set --user-name <username> --password <password>

如果收到 'Conflict'. Details: 409 错误,请更改用户名。 如果收到 'Bad Request'. Details: 400 错误,请使用更强的密码。

只创建此部署用户一次;可对所有 Azure 部署使用此用户。

Note

记录用户名和密码。 稍后需要使用它们来部署 Web 应用。

创建资源组

资源组是在其中部署和管理 Azure 资源(例如 Web 应用、数据库和存储帐户)的逻辑容器。

在 CLI 中,使用 az group create 命令创建资源组。 下面的示例命令在“中国北部”位置创建名为 myResourceGroup 的资源组。 要查看“免费”层中应用服务支持的所有位置,请运行 az appservice list-locations --sku FREE 命令。

az group create --name myResourceGroup --location "china north"

通常在附近的区域中创建资源组和资源。

此命令完成后,JSON 输出会显示资源组属性。

创建 Azure 应用服务计划

在 CLI 中,使用 az appservice plan create 命令创建一个应用服务计划。

以下示例在免费定价层中创建名为 myAppServicePlan 的应用服务计划:

az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku FREE

创建应用服务计划后,Azure CLI 将显示类似于以下示例的信息:

{ 
  "adminSiteName": null,
  "appServicePlanName": "myAppServicePlan",
  "geoRegion": "china north",
  "hostingEnvironmentProfile": null,
  "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan",
  "kind": "app",
  "location": "china north",
  "maximumNumberOfWorkers": 1,
  "name": "myAppServicePlan",
  < JSON data removed for brevity. >
  "targetWorkerSizeId": 0,
  "type": "Microsoft.Web/serverfarms",
  "workerTierName": null
} 

创建 Web 应用

在终端窗口中,使用 az webapp create 命令在 myAppServicePlan 应用服务计划中创建一个 Web 应用。

在以下示例中,将 <app_name> 替换为全局唯一的应用名称(有效字符是 a-z0-9-)。

# Bash and Powershell
az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app_name>

创建 Web 应用后,Azure CLI 会显示类似于以下示例的输出:

{
  "availabilityState": "Normal",
  "clientAffinityEnabled": true,
  "clientCertEnabled": false,
  "cloningInfo": null,
  "containerSize": 0,
  "dailyMemoryTimeQuota": 0,
  "defaultHostName": "<app_name>.chinacloudsites.cn",
  "enabled": true,
  < JSON data removed for brevity. >
}

设置 Node.js 运行时

将 Node 运行时设置为 8.11.1。

# Bash and Powershell
az webapp config appsettings set --resource-group myResourceGroup --name <app_name> --settings WEBSITE_NODE_DEFAULT_VERSION=8.11.1

浏览到新建的 Web 应用。 将 <app name> 替换为唯一的应用名称。

http://<app name>.chinacloudsites.cn

新 Web 应用应该如下所示:

空 Web 应用页面

部署 ZIP 文件

在浏览器中,导航到 https://<app_name>.scm.chinacloudsites.cn/ZipDeployUI

上传在创建一个项目 ZIP 文件中创建的 ZIP 文件,只需将其拖至网页的文件资源管理器区域即可。

部署正在进行的时候,右上角的图标会以百分比形式显示进度。 该页还在资源管理器区域下方显示操作的详细消息。 完成后,最后一个部署消息会显示:Deployment successful

浏览到应用

使用 Web 浏览器浏览到已部署的应用程序。

http://<app_name>.chinacloudsites.cn

Node.js 示例代码正在 Azure 应用服务 Web 应用中运行。

在 Azure 中运行的示例应用

祝贺你! 现已将第一个 Node.js 应用部署到应用服务。

更新并重新部署代码

使用文本编辑器在 Node.js 应用中打开 index.js 文件,然后对 response.end 调用中的文本稍微进行更改:

response.end("Hello Azure!");

在本地终端窗口中,导航到应用程序的根目录,为更新的项目创建新的 ZIP 文件。

# Bash
zip -r myUpdatedAppFiles.zip .

# PowerShell
Compress-Archive -Path * -DestinationPath myUpdatedAppFiles.zip

将此新的 ZIP 文件部署到应用服务,使用的步骤与部署 ZIP 文件中的步骤相同。

切换回在“浏览到应用”步骤中打开的浏览器窗口,然后刷新页面。

已更新的在 Azure 中运行的示例应用

管理新 Azure Web 应用

转到 Azure 门户管理创建的 Web 应用。

在左侧菜单中单击“应用服务”,然后单击 Azure Web 应用的名称。

在门户中导航到 Azure Web 应用

随后会显示 Web 应用的概述页。 在此处可以执行基本的管理任务,例如浏览、停止、启动、重启和删除。

Azure 门户中的“应用服务”页

左侧菜单提供用于配置应用的不同页面。

清理资源

若要删除通过此快速入门创建的所有资源,请运行以下命令:

az group delete --name myResourceGroup

后续步骤