У меня есть смехотворно простое приложение 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. Очень простой и отлично работает локально.
Что я тогда делаю:
- Настройка Azure Проект Devlop и репо для этого простого проекта, я называю его «node-simple».
- Затем я помещаю sh все содержимое моей папки node-starter до этого репо и визуально проверяю это все есть и выглядит хорошо. Это делает.
- Затем я go до Azure приложений и создать новое веб-приложение. Я выбираю бесплатный компьютер Linux и go в процессе настройки приложения, затем go в «центр развертывания».
- В центре развертывания я сообщаю ему, где найти код repo (в Azure Devops), мастер находит это и позволяет мне выбрать его.
- Я могу предоставить информацию, такую как команды запуска (npm start) и версию узла (12 LTS). Затем я развернул его и примерно через минуту я получил сообщение о том, что все успешно.
- Затем я go возвращаюсь к проекту Azure Devops и вижу в конвейерах, что была сборка И выпуск для производства. Итак, все выглядит хорошо. Нет ошибок.
Но, когда я затем просматриваю URL, предоставленный сервом приложения, я обычно получаю ошибку приложения 503. Когда я нажимаю на ссылку, чтобы получить больше информации, меня переводят в пустой Azure экран справки. Всего три мигающих синих кружка, которые ни к чему не приводят.
Что может пойти не так? Все выглядит так, как будто его настройка и развертывание в порядке, приложение просто не работает после развертывания. Это должно быть что-то простое, верно?
Пара вопросов, если это разрешено:
- В приложении. js Я указываю порт 3000, который, кажется, по умолчанию для Express. Означает ли это, что мне нужно добавить ': 3000' к Azure предоставленному URL или Azure знает, как прокси-порт?
- После долгих щелчков я нашел оболочку Bash в Azure для приложения (Кудо). Когда я подключаюсь к этому, я вижу, что код моего приложения был развернут на сайте / wwwroot.. Я вижу свои файлы и приложение. js там. Я попытался запустить 'npm start' там, но все равно ничего не получилось. Я попробовал 'npm i', чтобы попытаться разрешить любые проблемы с зависимостями, но это не помогло.
Я также попытался развернуть приложение с помощью плагина VSCode и получил точно такие же результаты. Пожалуйста, избавь меня от страданий и скажи, где я могу пойти не так. Пожалуйста.