Развертывание веб-приложения Node.js в Azure
Примечание.
Начиная с 1 июня 2024 г. все созданные Служба приложений приложения будут иметь возможность создать уникальное имя узла по умолчанию с помощью соглашения <app-name>-<random-hash>.<region>.azurewebsites.net
об именовании. Существующие имена приложений останутся неизменными.
Пример: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Дополнительные сведения см. в разделе "Уникальное имя узла по умолчанию" для ресурса Служба приложений.
Из этого краткого руководства вы узнаете, как создать и развернуть свое первое веб-приложение Node.js (Express) в Службе приложений Azure. Служба приложений поддерживает различные версии Node.js в Linux и Windows.
В этом кратком руководстве описана настройка приложения Службы приложений на уровне Бесплатный, что не приводит к затратам по вашей подписке Azure.
В этом видео показано, как развернуть веб-приложение Node.js в Azure.
Действия в видео также описаны в следующих разделах.
Настройка начальной среды
- Подготовьте учетную запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Установите Node.js и NPM. Выполнив команду
node --version
, убедитесь, что платформа Node.js установлена. - Установка Visual Studio Code.
- Расширение Службы приложений Azure для Visual Studio Code.
- Подготовьте учетную запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Установите Node.js LTS и npm. Выполнив команду
node --version
, убедитесь, что платформа Node.js установлена. - Установите Azure CLI, с помощью которой выполняются команды в любой оболочке для создания и настройки ресурсов Azure.
- Подготовьте учетную запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Установите Node.js LTS и npm. Выполнив команду
node --version
, убедитесь, что платформа Node.js установлена. - У вас есть FTP-клиент (например, FileZilla), чтобы подключиться к приложению.
Создание приложения Node.js
На этом шаге вы создадите базовое приложение Node.js и убедитесь, что оно выполняется на компьютере.
Совет
Если вы уже завершили работу с учебником по Node.js, можно сразу перейти к разделу о развертывании в Azure.
Создайте приложение Node.js с помощью генератора Express, который устанавливается по умолчанию с Node.js и NPM.
npx express-generator myExpressApp --view ejs
Перейдите в каталог приложения и установите пакеты NPM.
cd myExpressApp && npm install
Запустите сервер разработки с информацией об отладке.
DEBUG=myexpressapp:* npm start
В браузере перейдите на адрес
http://localhost:3000
. Отобразятся примерно следующие сведения:
Развернуть в Azure
Прежде чем продолжить, проверьте наличие и правильность настройки всех обязательных компонентов.
Примечание.
Чтобы приложение Node.js выполнялось в Azure, оно должно прослушивать порт, предоставленный переменной среды PORT
. В созданном приложении Express эта переменная среды уже используется в сценарии запуска bin/www (найдите process.env.PORT
).
Вход в Azure
В окне терминала перейдите к каталогу myExpressApp, а затем запустите Visual Studio Code с помощью следующей команды:
code .
В Visual Studio Code на панели действий щелкните значок Azure.
В обозревателе Службы приложений выберите Войти в Azure... и следуйте инструкциям.
В Visual Studio Code должна отображаться следующая информация: адрес электронной почты Azure в строке состояния и подписка в обозревателе Службы приложений Azure.
Настройка приложения Службы приложений и развертывание кода
- Выберите папку myExpressApp.
Щелкните правой кнопкой мыши элемент "Службы приложений" и выберите пункт Создать веб-приложение. По умолчанию используется контейнер Linux.
Введите глобально уникальное имя веб-приложения и нажмите клавишу ВВОД. Имя должно быть уникальным во всех системах Azure и состоять только из буквенно-цифровых символов ("A-Z", "a-z" и "0-9") и дефисов ("-"). См . заметку в верхней части страницы.
В окне "Выберите стек времени выполнения" выберите нужную версию Node.js. Рекомендуется использовать версию LTS.
В разделе "Выбор ценовой категории" выберите "Бесплатный" (F1) и дождитесь создания ресурсов в Azure.
Во всплывающем окне Всегда развертывать рабочую область "myExpressApp" в <имя-приложения>", виберите Да. Таким образом, пока вы находитесь в той же рабочей области, Visual Studio Code будет каждый раз выполнять развертывание в одном и том же приложении Службы приложений.
Хотя Visual Studio Code создает ресурсы Azure и развертывает код, он отображает уведомления о ходе выполнения.
После завершения развертывания выберите Обзор веб-сайта в раскрывающемся окне уведомления. В браузере должна отобразиться страница по умолчанию для Express.
В окне терминала убедитесь, что вы находитесь в каталоге myExpressApp, и разверните код в локальной папке (myExpressApp) с помощью команды az webapp up:
az webapp up --sku F1 --name <app-name>
- Если команда
az
не распознана, проверьте, установили ли вы Azure CLI согласно сведениям, указанным в разделе Настройка начальной среды. - Замените
<app_name>
именем, уникальным для всех регионов Azure (допустимыми символами являютсяa-z
,0-9
и-
). См . заметку в верхней части страницы. Рекомендуется использовать сочетание названия компании и идентификатора приложения. - Аргумент
--sku F1
создает веб-приложение в ценовой категории "Бесплатный", что не приводит к дополнительным затратам. - При необходимости вы можете использовать аргумент
--location <location-name>
, где<location_name>
является доступным регионом Azure. Список допустимых регионов для учетной записи Azure можно получить, выполнив командуaz account list-locations
. - По умолчанию команда создает приложение Linux для Node.js. Чтобы вместо этого создать приложение Windows, используйте аргумент
--os-type
. - Если отображается сообщение об ошибке "Не удалось автоматически определить стек среды выполнения приложения", убедитесь, что вы используете команду в каталоге myExpressApp (см. статью Устранение неполадок с автоматическим обнаружением с помощью команды az webapp up).
Выполнение этой команды может занять несколько минут. По мере выполнения будут отображаться сообщения о создании группы ресурсов, плане службы приложений и ресурсе приложения, настройке ведения журнала и последующем выполнении развертывания ZIP-файла. Затем он дает сообщение "Вы можете запустить приложение в http://< app-name.azurewebsites.net>", которое является URL-адресом приложения в Azure (см . заметку сверху).
The webapp '<app-name>' doesn't exist Creating Resource group '<group-name>' ... Resource group creation complete Creating AppServicePlan '<app-service-plan-name>' ... Creating webapp '<app-name>' ... Configuring default logging for the app, if not already enabled Creating zip with contents of dir /home/cephas/myExpressApp ... Getting scm site credentials for zip deployment Starting zip deployment. This operation can take a while to complete ... Deployment endpoint responded with status code 202 You can launch the app at http://<app-name>.azurewebsites.net { "URL": "http://<app-name>.azurewebsites.net", "appserviceplan": "<app-service-plan-name>", "location": "centralus", "name": "<app-name>", "os": "<os-type>", "resourcegroup": "<group-name>", "runtime_version": "node|10.14", "runtime_version_detected": "0.0", "sku": "FREE", "src_path": "//home//cephas//myExpressApp" }
Примечание.
Команда az webapp up
выполняет следующие действия:
создание группы ресурсов по умолчанию;
создание плана службы приложений по умолчанию;
создание приложения с указанным именем.
развертывание с помощью Zip всех файлов из текущей рабочей папки с включенной автоматизацией сборки;
Локальное кэширование параметров в файле .azure/config, позволяющее не указывать их снова при последующем развертывании с помощью
az webapp up
или других командaz webapp
из папки проекта. По умолчанию кэшированные значения используются автоматически.
Войдите на портал Azure.
Войдите на портал Azure.
Создание ресурсов Azure
Чтобы приступить к созданию приложения Node.js, перейдите на страницу https://portal.azure.com/#create/Microsoft.WebSite.
На вкладке Основные сведения в разделе Сведения о проекте убедитесь, что выбрана правильная подписка, и при необходимости щелкните Создать группу ресурсов. Введите myResourceGroup в качестве имени.
В разделе " Сведения об экземпляре" введите глобально уникальное имя для веб-приложения и выберите код (см . заметку вверху). Выберите стек среды выполнения LTS Node 18, операционную систему и регион, из которого вы хотите обслуживать приложение.
В разделе План Службы приложений выберите Создать план Службы приложений. Введите myAppServicePlan в качестве имени. Чтобы перейти на уровень "Бесплатный", выберите Изменить размер, затем выберите вкладку Разработка и тестирование, нажмите клавишу F1 и в нижней части страницы нажмите кнопку Применить.
В нижней части страницы нажмите кнопку Просмотр и создание.
После выполнения проверки нажмите кнопку Создать в нижней части страницы.
По завершении развертывания нажмите кнопку Перейти к ресурсу.
Получение учетных данных FTPS
Служба приложений Azure поддерживает два типа учетных данных для развертывания FTP/S. Эти учетные данные не совпадают с учетными данными подписки Azure. В рамках этого раздела вы получите учетные данные области приложения для использования с FileZilla.
На странице приложения Службы приложений выберите в левом меню Центр развертывания, а затем выберите вкладку Учетные данные FTPS.
Откройте FileZilla и создайте новый сайт.
На вкладке учетных данных FTPS в области приложения скопируйте конечную точку FTPS, имя пользователя FTPS и пароль в FileZilla.
Щелкните Подключить в FileZilla.
Развертывание файлов с помощью FTPS
Скопируйте все файлы и файлы каталогов в каталог /site/wwwroot в Azure.
Перейдите по URL-адресу приложения, чтобы убедиться, что приложение работает правильно.
Повторное развертывание обновлений
Вы можете развернуть изменения в этом приложении, внеся изменения в Visual Studio Code, сохранив файлы, а затем повторно развернув их в приложении Azure. Например:
В примере проекта откройте views/index.ejs и внесите изменения.
<p>Welcome to <%= title %></p>
до
<p>Welcome to Azure</p>
В обозревателе Службы приложений снова выберите значок Развернуть в веб-приложении, а затем нажмите кнопку Развернуть еще раз.
Дождитесь завершения развертывания, после чего выберите Обзор веб-сайта в раскрывающемся окне уведомления. Вы должны увидеть, что сообщение
Welcome to Express
было изменено наWelcome to Azure!
.
Сохраните изменения, а затем повторно разверните приложение с помощью команды az webapp up без аргументов для Linux. Добавление
--os-type Windows
для Windows:az webapp up
Эта команда использует значения, которые кэшируются локально в файле .azure/config, например имя приложения, группу ресурсов и план службы приложений.
После завершения развертывания обновите веб-страницу
http://<app-name>.azurewebsites.net
(см . заметку сверху). Вы должны увидеть, что сообщениеWelcome to Express
было изменено наWelcome to Azure!
.
Сохраните изменения, а затем повторно разверните приложение с помощью FTP-клиента.
После завершения развертывания обновите веб-страницу
http://<app-name>.azurewebsites.net
(см . заметку сверху). Вы должны увидеть, что сообщениеWelcome to Express
было изменено наWelcome to Azure!
.
Потоковая передача журналов
Выходные данные журнала (вызовы console.log()
) можно передавать потоком из приложения Azure непосредственно в окне вывода Visual Studio Code.
В обозревателе Службы приложений щелкните узел приложения правой кнопкой мыши и выберите Начать потоковую передачу журналов.
При появлении запроса на перезапуск приложения выберите Да. После перезапуска приложения откроется окно выходных данных Visual Studio Code, подключенное к потоку журнала.
Через несколько секунд в окне вывода появится сообщение о том, что вы подключены к службе потоковой передачи журналов. Обновив страницу в браузере, можно создать дополнительные действия вывода.
Connecting to log stream... 2020-03-04T19:29:44 Welcome, you are now connected to log-streaming service. The default timeout is 2 hours. Change the timeout with the App Setting SCM_LOGSTREAM_TIMEOUT (in seconds).
Вы можете получить доступ к журналам консоли, созданным в приложении, и контейнеру, в котором он выполняется. В журналы включены все выходные данные, созданные вызовами метода console.log()
.
Чтобы выполнить потоковую передачу журналов, запустите команду az webapp log tail:
az webapp log tail
Эта команда использует имя группы ресурсов, кэшированное в файле .azure/config.
Кроме того, вы можете использовать параметр --logs
, а потом команду az webapp up, чтобы автоматически запустить потоковую передачу журналов для развертывания.
Обновите приложение в браузере, чтобы создать журналы консоли, которые содержат сообщения с HTTP-запросами к приложению. Если выходные данные не отображаются немедленно, повторите попытку через 30 секунд.
Чтобы предотвратить потоковую передачу журналов, нажмите Ctrl+C в окне терминала.
Вы можете получить доступ к журналам консоли, созданным в приложении, и контейнеру, в котором он выполняется. Выходные данные журнала (вызовы в console.log()
) можно передавать из приложения Node.js непосредственно на портале Azure.
На той же странице Служба приложений используйте для приложения меню слева для прокрутки к разделу Наблюдение и выберите Поток журналов.
Через несколько секунд в окне вывода появится сообщение о том, что вы подключены к службе потоковой передачи журналов. Обновив страницу в браузере, можно создать дополнительные действия вывода.
Connecting... 2021-10-26T21:04:14 Welcome, you are now connected to log-streaming service. Starting Log Tail -n 10 of existing logs ---- /appsvctmp/volatile/logs/runtime/81b1b83b27ea1c3d598a1cdec28c71c4074ce66c735d0be57f15a8d07cb3178e.log 2021-10-26T21:04:08.614384810Z: [INFO] 2021-10-26T21:04:08.614393710Z: [INFO] # Enter the source directory to make sure the script runs where the user expects 2021-10-26T21:04:08.614399010Z: [INFO] cd "/home/site/wwwroot" 2021-10-26T21:04:08.614403210Z: [INFO] 2021-10-26T21:04:08.614407110Z: [INFO] export NODE_PATH=/usr/local/lib/node_modules:$NODE_PATH 2021-10-26T21:04:08.614411210Z: [INFO] if [ -z "$PORT" ]; then 2021-10-26T21:04:08.614415310Z: [INFO] export PORT=8080 2021-10-26T21:04:08.614419610Z: [INFO] fi 2021-10-26T21:04:08.614423411Z: [INFO] 2021-10-26T21:04:08.614427211Z: [INFO] node /opt/startup/default-static-site.js Ending Log Tail of existing logs ---
Очистка ресурсов
На предыдущем шаге вы создали ресурсы Azure в группе ресурсов. При выполнении шагов создания, описанных в этом кратком руководстве, все ресурсы помещаются в эту группу ресурсов. Для очистки необходимо просто удалить группу ресурсов.
В расширении Azure в Visual Studio разверните обозреватель групп ресурсов.
Разверните подписку, щелкните правой кнопкой мыши созданную ранее группу ресурсов и выберите Удалить.
При появлении запроса подтвердите удаление, введя имя удаляемой группы ресурсов. После подтверждения группа ресурсов удаляется, а после завершения отображается уведомление.
На предыдущем шаге вы создали ресурсы Azure в группе ресурсов. Группа ресурсов имеет имя, такое как "appsvc_rg_Linux_CentralUS", в зависимости от расположения.
Если эти ресурсы вам не понадобятся в будущем, удалите группу ресурсов, выполнив следующие команды:
az group delete --no-wait
Эта команда использует имя группы ресурсов, кэшированное в файле .azure/config.
Аргумент --no-wait
позволяет команде возвращать сведения до завершения операции.
Если группа ресурсов, Служба приложений и связанные ресурсы вам больше не нужны, их можно удалить.
На странице обзора Службы приложений выберите группу ресурсов, созданную на шаге Создание ресурсов Azure.
На странице Группа ресурсов выберите Удалить группу ресурсов. Подтвердите имя группы ресурсов, чтобы завершить удаление ресурсов.
Следующие шаги
Поздравляем, вы успешно завершили работу с этим руководством!
Ознакомьтесь с другими расширениями Azure.
- Azure Cosmos DB
- Функции Azure
- Инструменты Docker
- Средства интерфейса командной строки Azure
- Средства Azure Resource Manager
Вы можете установить их все сразу в составе пакета расширений для узла Azure.