Поделиться через


Развертывание веб-приложения Node.js в Azure

Из этого краткого руководства вы узнаете, как создать и развернуть первое веб-приложение Node.js (Express) в Службе приложений Azure. Служба приложений поддерживает различные версии Node.js в Linux и Windows.

В этом кратком руководстве описана настройка приложения Службы приложений в бесплатном тарифе, что не влечет за собой расходов по вашей подписке Azure.

В этом видео показано, как развернуть веб-приложение Node.js в Azure.

Действия в видео также описаны в следующих разделах.

Настройка начальной среды

  • Подготовьте учетную запись Azure с активной подпиской. Если ее нет, можно создать учетную запись бесплатно.
  • Установите Node.js LTS. Выполнив команду node --version, убедитесь, что платформа Node.js установлена.
  • Установите Azure CLI, который можно использовать для выполнения команд в оболочке для создания и настройки ресурсов Azure.
  • Подготовьте учетную запись Azure с активной подпиской. Если ее нет, можно создать учетную запись бесплатно.
  • Установите Node.js LTS. Выполнив команду node --version, убедитесь, что платформа Node.js установлена.
  • У вас есть FTP-клиент, например FileZilla, для передачи файлов в службу приложений.

Создание приложения Node.js

На этом шаге вы создадите базовое приложение Node.js и убедитесь, что оно выполняется на компьютере.

Совет

Если вы уже выполнили руководство по Node.js, вы можете перейти к развертыванию на платформе Azure.

  1. Создайте приложение Node.js с помощью генератора экспресс-приложений, который устанавливается по умолчанию с Node.js и npm.

    npx express-generator myExpressApp --view ejs
    

    Если это первый раз, когда вы установили генератор, npx просит вас согласиться с установкой.

  2. Перейдите в каталог приложения и установите пакеты npm.

    cd myExpressApp && npm install
    
  3. Обновите зависимости до самой безопасной версии.

    npm audit fix --force
    
  4. Запустите сервер разработки с информацией об отладке.

    DEBUG=myexpressapp:* npm start
    
  5. В браузере перейдите на адрес http://localhost:3000. Вы должны увидеть что-то похожее на это:

    Снимок экрана: приложение Express, работающее в браузере.

Развернуть в Azure

Прежде чем продолжить, проверьте наличие и правильность настройки всех обязательных компонентов.

Примечание.

Чтобы приложение Node.js выполнялось в Azure, оно должно прослушивать порт, предоставленный переменной среды PORT. В созданном приложении Express эта переменная среды уже используется в стартовом скрипте bin/www. (Поиск process.env.PORT.)

Вход в Azure

  1. В терминале убедитесь, что вы находитесь в каталоге myExpressApp , а затем запустите Visual Studio Code с помощью следующей команды:

    code .
    
  2. В Visual Studio Code в строке действий выберите логотип Azure.

  3. Убедитесь, что вы вошли в учетную запись Azure.

Настройка приложения Службы приложений и развертывание кода

  1. Щелкните правой кнопкой мыши Служба приложений и выберите "Создать веб-приложение". По умолчанию используется контейнер Linux.

  2. Введите глобально уникальное имя веб-приложения и нажмите клавишу ВВОД. Имя должно быть уникальным во всей системе Azure и содержать только буквенно-цифровые символы (A-Z, a-z, 0-9) и дефисы (-).

  3. В Выбор стека среды выполнения выберите нужную версию Node.js. Рекомендуется использовать узел 24 LTS.

  4. В разделе "Выбор ценовой категории" выберите "Бесплатный" (F1) и дождитесь создания ресурсов в Azure.

  5. Во всплывающем окне Всегда развертывать рабочую область "myExpressApp" в <имя-приложения>", выберите Да. Это гарантирует, что до тех пор, пока вы находитесь в той же рабочей области, Visual Studio Code развертывается в одном и том же приложении Служба приложений каждый раз.

    Хотя Visual Studio Code создает ресурсы Azure и развертывает код, он отображает уведомления о ходе выполнения.

  6. После завершения развертывания нажмите Обзор веб-сайта во всплывающем окне уведомлений. В браузере должна отобразиться страница по умолчанию для 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. Затем он возвращает сообщение, включающее URL-адрес приложения, который является 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 <URL>
{
  "URL": "<URL>",
  "appserviceplan": "<app-service-plan-name>",
  "location": "centralus",
  "name": "<app-name>",
  "os": "<os-type>",
  "resourcegroup": "<group-name>",
  "runtime_version": "node|24",
  "runtime_version_detected": "0.0",
  "sku": "FREE",
  "src_path": "/home/cephas/myExpressApp"
}

Примечание.

Команда az webapp up выполняет следующие действия:

Создание ресурсов Azure

  1. Войдите на портал Azure.

  2. Чтобы приступить к созданию приложения Node.js, перейдите на страницу https://portal.azure.com/#create/Microsoft.WebSite.

  3. На вкладке "Основные сведения" в разделе "Сведения о проекте" убедитесь, что выбрана правильная подписка, а затем нажмите кнопку "Создать" , чтобы создать группу ресурсов. Введите myResourceGroup в качестве имени.

    Снимок экрана: раздел сведений о проекте, показывающий, где выбрана подписка Azure и группа ресурсов для веб-приложения.

  4. В разделе Сведения об экземпляре введите глобально уникальное имя для веб-приложения и выберите Код. Выберите узел 24 LTS в стеке среды выполнения, операционная система и регион , из которого вы хотите обслуживать приложение.

    Скриншот раздела сведений об экземпляре.

  5. В разделе "Цены" выберите "Создать" , чтобы создать план службы приложений. Введите myAppServicePlan в качестве имени. Чтобы изменить уровень "Бесплатный", выберите "Бесплатный F1" в списке тарифных планов .

    Снимок экрана раздела «План служб приложений».

  6. В нижней части страницы нажмите кнопку Просмотр и создание.

    Снимок экрана: кнопка

  7. После выполнения проверки нажмите кнопку Создать в нижней части страницы.

  8. По завершении развертывания нажмите кнопку Перейти к ресурсу.

    Снимок экрана: кнопка

Получение учетных данных FTPS

Служба приложений Azure поддерживает два типа учетных данных для развертывания FTP/S. Эти учетные данные не совпадают с учетными данными подписки Azure. В этом разделе вы получите учетные данные области приложения для использования с FTP-клиентом.

  1. На странице приложения службы приложений выберите Центр развертывания в разделе "Развертывание " в боковом меню и перейдите на вкладку "Учетные данные FTPS ".

    Снимок экрана: вкладка учетных данных развертывания FTPS.

  2. Откройте FTP-клиент и перейдите в папку myExpressApp .

  3. На вкладке учетных данных FTPS скопируйте конечную точку FTPS, имя пользователя и пароль в ftp-клиент.

    Снимок экрана: сведения о подключении FTPS.

  4. Выберите "Подключиться" в FTP-клиенте.

Развертывание файлов с помощью FTPS

  1. Скопируйте все файлы и каталоги в /site/wwwroot в Azure.

    Снимок экрана: корневой каталог WWW.

  2. Перейдите по URL-адресу приложения, чтобы убедиться, что приложение работает правильно.

Повторное развертывание обновлений

Вы можете развернуть изменения в этом приложении, внося изменения в Visual Studio Code, сохраняя файлы, а затем повторно разверните своё приложение Azure. Например:

  1. В примере проекта откройте views/index.ejs и внесите изменения.

    <p>Welcome to <%= title %></p>
    

    до

    <p>Welcome to Azure</p>
    
  1. В обозревателе Служба приложений снова выберите значок "Развернуть в веб-приложении" и подтвердите его, нажав кнопку "Развернуть еще раз".

  2. Дождитесь завершения развертывания, после чего выберите Обзор веб-сайта в раскрывающемся окне уведомления. Вы должны увидеть, что Welcome to Express сообщение было изменено на Welcome to Azure.

  1. Сохраните изменения, а затем повторно разверните приложение с помощью команды az webapp up без аргументов для Linux. Добавьте --os-type Windows для Windows:

    az webapp up
    

    Эта команда использует значения, которые кэшируются локально в файле .azure/config, например имя приложения, группу ресурсов и план службы приложений.

  2. После завершения развертывания обновите веб-страницу. Должно быть видно, что сообщение Welcome to Express было изменено на Welcome to Azure.

  1. Сохраните изменения, а затем повторно разверните приложение с помощью FTP-клиента.

  2. После завершения развертывания обновите веб-страницу. Вы должны видеть, что сообщение Welcome to Express было изменено на Welcome to Azure.

Журналы потоков

Выходные данные журнала (вызовы console.log()) можно передавать потоком из приложения Azure непосредственно в окне вывода Visual Studio Code.

  1. В разделе "Ресурсы" в Visual Studio Code щелкните правой кнопкой мыши на узле приложения и выберите "Начать потоковую передачу журналов".

    Снимок экрана: параметр

  2. При появлении запроса на перезапуск приложения выберите Да. После перезапуска приложения откроется окно выходных данных Visual Studio Code, подключенное к потоку журнала.

  3. Через несколько секунд в окне вывода появится сообщение о том, что вы подключены к службе потоковой передачи журналов. Обновив страницу в браузере, можно увеличить активность вывода.

    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.

  1. На той же странице службы приложений для приложения используйте боковое меню, чтобы прокрутить раздел "Мониторинг " и выбрать поток журналов.

    Снимок экрана: поток журналов в Службе приложений Azure.

  2. Через несколько секунд в окне вывода появится сообщение о том, что вы подключены к службе потоковой передачи журналов. Обновив страницу в браузере, можно увеличить активность вывода.

    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 в группе ресурсов. Действия, описанные в этом кратком руководстве, помещают все ресурсы в эту группу ресурсов. Для очистки необходимо просто удалить группу ресурсов.

  1. В расширении Azure для Visual Studio Code в списке Группировать по выберите Группировать по ресурсной группе.

  2. В списке ресурсов разверните подписку, щелкните правой кнопкой мыши созданную ранее группу ресурсов и выберите пункт "Удалить группу ресурсов".

    Снимок экрана навигации в Visual Studio Code для удаления ресурса, содержащего ресурсы Службы приложений.

  3. При появлении запроса подтвердите удаление, введя имя удаляемой группы ресурсов. После подтверждения группа ресурсов удаляется и по завершении отобразится уведомление .

На предыдущем шаге вы создали ресурсы Azure в группе ресурсов. Группа ресурсов имеет название, такое как appsvc_rg_Linux_CentralUS, в зависимости от вашего местоположения.

Если эти ресурсы вам не понадобятся в будущем, удалите группу ресурсов, выполнив следующие команды:

az group delete --no-wait

Эта команда использует имя группы ресурсов, кэшированное в файле .azure/config.

Аргумент --no-wait позволяет команде возвращать сведения до завершения операции.

Вы можете удалить группу ресурсов, службу приложений и все связанные ресурсы, если они больше не нужны.

  1. На странице обзора Службы приложений выберите группу ресурсов, созданную на шаге Создание ресурсов Azure.

    Снимок экрана: страница обзора группы ресурсов в службе приложений.

  2. На странице Группа ресурсов выберите Удалить группу ресурсов. Подтвердите имя группы ресурсов, чтобы завершить удаление ресурсов.

    Снимок экрана: удаление группы ресурсов.

Поздравляем, вы успешно завершили этот быстрый старт!

Ознакомьтесь с другими расширениями Azure.

Вы можете установить все сразу, установив пакет расширений Node Pack for Azure.