Развертывание простого Express приложения в Azure Службе приложений - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть смехотворно простое приложение Node / Express, которое я пытаюсь запустить в Azure Сервисах приложений. Его единственная цель - дать мне возможность учиться, заставляя его работать над постепенным расширением приложения, используя Git и Azure Devops.

Я уже застрял.

У меня есть Локальная папка 'node-starter' и там находится мое приложение. js, package. json, node-modules (включая Express) и так далее. Приложение. js очень просто:

const express = require("express")

const app = express()

app.get("/", (req, res) => {
    res.send({
        "first": "jason",
        "last": "bourne"
    })
})

app.listen(3000,()=> {
    console.log("server running....")
})

Мой пакет. json также очень просто:

{
  "name": "node-starter",
  "version": "1.0.0",
  "description": "simple node and express app to test azure deployments",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node app.js"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "express": "^4.17.1"
  }
}

Когда я запускаю это локально, используя npm start Сценарий запуска приложения, и я могу получить ответ json на локальном хосте через порт 3000. Очень простой и отлично работает локально.

Что я тогда делаю:

  1. Настройка Azure Проект Devlop и репо для этого простого проекта, я называю его «node-simple».
  2. Затем я помещаю sh все содержимое моей папки node-starter до этого репо и визуально проверяю это все есть и выглядит хорошо. Это делает.
  3. Затем я go до Azure приложений и создать новое веб-приложение. Я выбираю бесплатный компьютер Linux и go в процессе настройки приложения, затем go в «центр развертывания».
  4. В центре развертывания я сообщаю ему, где найти код repo (в Azure Devops), мастер находит это и позволяет мне выбрать его.
  5. Я могу предоставить информацию, такую ​​как команды запуска (npm start) и версию узла (12 LTS). Затем я развернул его и примерно через минуту я получил сообщение о том, что все успешно.
  6. Затем я go возвращаюсь к проекту Azure Devops и вижу в конвейерах, что была сборка И выпуск для производства. Итак, все выглядит хорошо. Нет ошибок.

Но, когда я затем просматриваю URL, предоставленный сервом приложения, я обычно получаю ошибку приложения 503. Когда я нажимаю на ссылку, чтобы получить больше информации, меня переводят в пустой Azure экран справки. Всего три мигающих синих кружка, которые ни к чему не приводят.

Что может пойти не так? Все выглядит так, как будто его настройка и развертывание в порядке, приложение просто не работает после развертывания. Это должно быть что-то простое, верно?

Пара вопросов, если это разрешено:

  1. В приложении. js Я указываю порт 3000, который, кажется, по умолчанию для Express. Означает ли это, что мне нужно добавить ': 3000' к Azure предоставленному URL или Azure знает, как прокси-порт?
  2. После долгих щелчков я нашел оболочку Bash в Azure для приложения (Кудо). Когда я подключаюсь к этому, я вижу, что код моего приложения был развернут на сайте / wwwroot.. Я вижу свои файлы и приложение. js там. Я попытался запустить 'npm start' там, но все равно ничего не получилось. Я попробовал 'npm i', чтобы попытаться разрешить любые проблемы с зависимостями, но это не помогло.

Я также попытался развернуть приложение с помощью плагина VSCode и получил точно такие же результаты. Пожалуйста, избавь меня от страданий и скажи, где я могу пойти не так. Пожалуйста.

1 Ответ

1 голос
/ 14 апреля 2020

Только веб-порты 80 и 443 открыты для веб-приложений. Вы должны изменить порт прослушивания на process.env.PORT.

const port = process.env.PORT;
app.listen(port);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...