努力将我的node.js应用程序上传到Azure [英] Struggling to upload my node.js application to azure

查看:54
本文介绍了努力将我的node.js应用程序上传到Azure的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是node.js的初学者,需要托管一个我不是亲自在azure服务器上编写的应用程序来进行测试.该站点可以很好地在本地托管,也可以使用ngrok托管.但是,当我将其托管在天蓝色时,会出现以下错误:

I am a beginner at node.js and need to host an application that I didn't personally write on an azure server for some testing. The site runs fine locally hosted, as well as hosted using ngrok. Yet, when I host it on azure, I get the following error:

[1] 2020-08-23T00:26:36 
Container etuition_0_41152ef3 didn't respond to HTTP pings on port: 8080, failing site start
[2] 2020-08-23T00:26:36 
Container etuition_0_41152ef3 for site etuition did not start within expected time limit.

现在我必须强调,我完全不熟悉node.js,但是对我来说,http请求似乎正确地排列了.这是我认为可能是问题所在的index.js代码.

Now I must stress that I am completely unfamiliar with node.js, but to me it seems that the http requests are lining up correctly. Here is the code for my index.js, where I think the problem may lie.

'use strict';

/**
 * Load Twilio configuration from .env config file - the following environment
 * variables should be set:
 * process.env.TWILIO_ACCOUNT_SID
 * process.env.TWILIO_API_KEY
 * process.env.TWILIO_API_SECRET
 */
require('dotenv').load();

const express = require('express');
const http = require('https');
const path = require('path');
const { jwt: { AccessToken } } = require('twilio');

const VideoGrant = AccessToken.VideoGrant;

// Max. period that a Participant is allowed to be in a Room (currently 14400 seconds or 4 hours)
const MAX_ALLOWED_SESSION_DURATION = 14400;

// Create Express webapp.
const app = express();

// Set up the paths for the examples.
[
  'bandwidthconstraints',
  'codecpreferences',
  'dominantspeaker',
  'localvideofilter',
  'localvideosnapshot',
  'mediadevices',
  'networkquality',
  'reconnection',
  'screenshare',
  'localmediacontrols',
  'remotereconnection',
  'datatracks',

].forEach(example => {
  const examplePath = path.join(__dirname, `../examples/${example}/public`);
  app.use(`/${example}`, express.static(examplePath));
});

// Set up the path for the quickstart.
const quickstartPath = path.join(__dirname, '../quickstart/public');
app.use('/quickstart', express.static(quickstartPath));

// Set up the path for the examples page.
const examplesPath = path.join(__dirname, '../examples');
app.use('/examples', express.static(examplesPath));

/**
 * Default to the Quick Start application.
 */
app.get('/', (request, response) => {
  response.redirect('/quickstart');
});



/**
 * Generate an Access Token for a chat application user - it generates a random
 * username for the client requesting a token, and takes a device ID as a query
 * parameter.
 */
app.get('/token', function(request, response) {
  const { identity } = request.query;

  // Create an access token which we will sign and return to the client,
  // containing the grant we just created.
  const token = new AccessToken(
    process.env.TWILIO_ACCOUNT_SID,
    process.env.TWILIO_API_KEY,
    process.env.TWILIO_API_SECRET,
    { ttl: MAX_ALLOWED_SESSION_DURATION }
  );

  // Assign the generated identity to the token.
  token.identity = identity;

  // Grant the access token Twilio Video capabilities.
  const grant = new VideoGrant();
  token.addGrant(grant);

  // Serialize the token to a JWT string.
  response.send(token.toJwt());
});

// Create http server and run it.
const server = http.createServer(app);
const port = process.env.PORT || 8080;
server.listen(port, function() {
  console.log('Express server running on *:' + port);
});

这是我的package.json

Here is my package.json


{
  "name": "video-quickstart-js",
  "version": "1.0.0-dev",
  "description": "Twilio Video SDK Quick Start for JavaScript",
  "main": "index.js",
  "scripts": {
    "build": "npm-run-all build:* ",
    "build:examples": "npm-run-all build:examples:*",
    "build:examples:bandwidthconstraints": "copyfiles -f examples/bandwidthconstraints/src/helpers.js examples/bandwidthconstraints/public && browserify examples/bandwidthconstraints/src/index.js > examples/bandwidthconstraints/public/index.js",
    "build:examples:codecpreferences": "copyfiles -f examples/codecpreferences/src/helpers.js examples/codecpreferences/public && browserify examples/codecpreferences/src/index.js > examples/codecpreferences/public/index.js",
    "build:examples:dominantspeaker": "copyfiles -f examples/dominantspeaker/src/helpers.js examples/dominantspeaker/public && browserify examples/dominantspeaker/src/index.js > examples/dominantspeaker/public/index.js",
    "build:examples:localvideofilter": "copyfiles -f examples/localvideofilter/src/helpers.js examples/localvideofilter/public && browserify examples/localvideofilter/src/index.js > examples/localvideofilter/public/index.js",
    "build:examples:localvideosnapshot": "copyfiles -f examples/localvideosnapshot/src/helpers.js examples/localvideosnapshot/public && browserify examples/localvideosnapshot/src/index.js > examples/localvideosnapshot/public/index.js",
    "build:examples:mediadevices": "copyfiles -f examples/mediadevices/src/helpers.js examples/mediadevices/public && browserify examples/mediadevices/src/index.js > examples/mediadevices/public/index.js",
    "build:examples:networkquality": "copyfiles -f examples/networkquality/src/helpers.js examples/networkquality/public && browserify examples/networkquality/src/index.js > examples/networkquality/public/index.js",
    "build:examples:reconnection": "copyfiles -f examples/reconnection/src/helpers.js examples/reconnection/public && browserify examples/reconnection/src/index.js > examples/reconnection/public/index.js",
    "build:examples:screenshare": "copyfiles -f examples/screenshare/src/helpers.js examples/screenshare/public && browserify examples/screenshare/src/index.js > examples/screenshare/public/index.js",
    "build:examples:localmediacontrols": "copyfiles -f examples/localmediacontrols/src/helpers.js examples/localmediacontrols/public && browserify examples/localmediacontrols/src/index.js > examples/localmediacontrols/public/index.js",
    "build:examples:remotereconnection": "copyfiles -f examples/remotereconnection/src/helpers.js examples/remotereconnection/public && browserify examples/remotereconnection/src/index.js > examples/remotereconnection/public/index.js",
    "build:examples:datatracks": "copyfiles -f examples/datatracks/src/helpers.js examples/datatracks/public && browserify examples/datatracks/src/index.js > examples/datatracks/public/index.js",
    "build:quickstart": "browserify quickstart/src/index.js > quickstart/public/index.js",
    "clean": "npm-run-all clean:*",
    "clean:examples": "npm-run-all clean:examples:*",
    "clean:examples:bandwidthconstraints": "rimraf examples/bandwidthconstraints/public/index.js examples/bandwidthconstraints/public/helpers.js",
    "clean:examples:codecpreferences": "rimraf examples/codecpreferences/public/index.js examples/codecpreferences/public/helpers.js",
    "clean:examples:dominantspeaker": "rimraf examples/dominantspeaker/public/index.js examples/dominantspeaker/public/helpers.js",
    "clean:examples:localvideofilter": "rimraf examples/localvideofilter/public/index.js examples/localvideofilter/public/helpers.js",
    "clean:examples:localvideosnapshot": "rimraf examples/localvideosnapshot/public/index.js examples/localvideosnapshot/public/helpers.js",
    "clean:examples:mediadevices": "rimraf examples/mediadevices/public/index.js examples/mediadevices/public/helpers.js",
    "clean:examples:networkquality": "rimraf examples/networkquality/public/index.js examples/networkquality/public/helpers.js",
    "clean:examples:reconnection": "rimraf examples/reconnection/public/index.js examples/reconnection/public/helpers.js",
    "clean:examples:screenshare": "rimraf examples/screenshare/public/index.js examples/screenshare/public/helpers.js",
    "clean:examples:localmediacontrols": "rimraf examples/localmediacontrols/public/index.js examples/localmediacontrols/public/helpers.js",
    "clean:examples:remotereconnection": "rimraf examples/remotereconnection/public/index.js examples/remotereconnection/public/helpers.js",
    "clean:examples:datatracks": "rimraf examples/datatracks/public/index.js examples/datatracks/public/helpers.js",
    "clean:quickstart": "rimraf quickstart/public/index.js",
    "start": "npm run clean && npm run build && node server"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/twilio/video-quickstart-js.git"
  },
  "keywords": [
    "twilio",
    "video",
    "chat",
    "ip",
    "real",
    "time",
    "diggity"
  ],
  "author": "Twilio",
  "license": "MIT",
  "bugs": {
    "url": "https://github.com/twilio/video-quickstart-js/issues"
  },
  "homepage": "https://github.com/twilio/video-quickstart-js#readme",
  "dependencies": {
    "dotenv": "^4.0.0",
    "express": "^4.15.2",
    "prismjs": "^1.6.0",
    "stackblur-canvas": "^1.4.0",
    "twilio": "^3.19.1",
    "twilio-video": "^2.7.0"
  },
  "devDependencies": {
    "browserify": "^14.3.0",
    "copyfiles": "^1.2.0",
    "npm-run-all": "^4.0.2",
    "rimraf": "^2.6.1"
  }
}

感谢您的阅读!

推荐答案

首先,请确保您使用的服务是AWS还是Azure Web App Services?

First, make sure what services you use, AWS or Azure Web App Services ?

无论您使用什么服务,我都建议您使用git部署您的Web应用程序.

Whatever services you use, I recommand you use git to deploy your web app.

  1. 使用git在azure中进行部署网络应用服务.

使用git来部署在AWS中.

您只需确保您的Web应用程序可以在本地成功运行.以及您使用的端口,例如app.set('port', process.env.PORT || 3000);const port = process.env.PORT || 3000.这意味着您可以通过3000端口在本地成功运行.

You just make sure your web app can run successfully in local. And the port you use like app.set('port', process.env.PORT || 3000); or const port = process.env.PORT || 3000. Which means you can success run in local with 3000 port.

有关更多详细信息,您可以在另一篇文章中看到我的答案.

For more details, you can see my answer in another post.

  1. Azure-未处理的异常:System.IO.FileNotFoundException

通过Action部署Web应用程序时,可以参考故障排除方法.希望我的回答能对您有所帮助.

You can refer to the way of troubleshooting when deploy web app by Action. Hope my answer can help you.

这篇关于努力将我的node.js应用程序上传到Azure的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆