簡體   English   中英

如何在Azure App Service上運行Node.js應用程序?

[英]How to get Node.js app running on Azure App Service?

我正在嘗試在Azure應用服務(Linux)上運行最簡單的node.js應用,但是我對如何使它運行沒有足夠的想法。 我一直在嘗試不同的方法,但似乎沒有任何效果。

我只是通過FTP部署應用程序,然后將文件放在“ wwwroot”下,但是當請求url時,它將永久加載,然后以服務不可用響應結束。

創建應用程序時,我選擇Linux作為平台,運行時為node.js 8.11,並通過“代碼”而不是docker進行部署。

在日志中,我可以看到:

docker run -d -p 46852:8080 --name [appname] -e WEBSITE_NODE_DEFAULT_VERSION=8.11 -e APPSETTING_WEBSITE_NODE_DEFAULT_VERSION=8.11 -e WEBSITE_SITE_NAME=[appname] -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_INSTANCE_ID=[id] -e HTTP_LOGGING_ENABLED=1 appsvc/node:8.11.2_1805212105

Container [appname] for site [appname] did not start within expected time limit. Elapsed time = 230.4882261 sec

這是什么意思,即使我通過“代碼”和FTP通過deploy設置了應用程序,仍以某種方式使用了docker。

的package.json

{
  "name": "foo",
  "version": "1.0.0",
  "description": "x",
  "author": "x",
  "private": true,
  "scripts": {
    "start": "node server.js"
  },
  "dependencies": {
    "express": "^4.16.3"
  }
}

server.js

const express = require('express')
const app = express()

const port = process.env.PORT || 3000
const host = process.env.HOST || '127.0.0.1'

app.get('/', (req, res) => res.send('Hello!'))

app.listen(port, host)

我還嘗試了ssh進入應用程序並運行npm install 我嘗試通過ssh控制台node server.js運行該應用程序,但最終顯示消息“端口已在使用中”。 我嘗試在Azure Portal的“應用程序設置”中將端口設置為8080。

我在這里想念什么? 如何使應用程序運行?

首先,最好知道您如何精確地創建應用程序(使用的工具,采取的步驟等)。 總體而言,需要了解的主要內容-Azure應用服務默認情況下即使用后即不使用Node.js。 若要指定主機將運行Node應用程序,需要設置“ WEBSITE_NODE_DEFAULT_VERSION”參數(在Azure App Service的“應用程序設置”刀片中)。 完成后,您可以使用任何可用選項進行部署(使用發布功能,本地git,使用Azure DevOps等)。 這是一個很好的話題 直截了當:

  • 安裝Azure CLI
  • 登錄到Azure(az登錄)
  • az帳戶顯示(以查看您是否獲得了正確的訂閱,以防萬一)。 如有必要,請使用“ az帳戶集”進行切換
  • 然后,根據此說明,創建資源組,服務計划和Web應用程序。 設置Node.js運行時
  • 壓縮您的應用程序(按照說明,使用Bash或PS)
  • 在App Service中,使用Kudu控制台部署(壓縮)您的應用程序(“開發工具”->“高級工具”刀片,從下拉菜單中選擇“工具”->“ Zip Push Deploy”)
  • 查看結果。

在我的網站上,我只是執行了app.listen(process.env.port); -沒有主機參數。 並嘗試執行npm start

還要檢查自動生成的web.configiisnode.yml ,它們都是運行Node所必需的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM