Руководство по развертыванию веб-приложения Node.js + MongoDB в Azure
Служба приложений Azure — это высокомасштабируемая служба размещения с самостоятельной установкой исправлений на основе операционной системы Linux. В этом руководстве показано, как создать безопасное приложение Node.js в службе приложение Azure, подключенной к базе данных Azure Cosmos DB для MongoDB. По завершении вы получите приложение Express.js, работающее в Службе приложений Azure в Linux.
В этом руководстве описано следующее:
- Создайте безопасную архитектуру по умолчанию для службы приложение Azure и Azure Cosmos DB с помощью API MongoDB.
- Защита секретов подключения с помощью управляемого удостоверения и ссылок Key Vault.
- Разверните пример приложения Node.js для Служба приложений из репозитория GitHub.
- Acces Служба приложений параметры приложения в коде приложения.
- Создание обновлений и повторное развертывание кода приложения.
- Потоковая передача журналов диагностики из Служба приложений.
- Управление приложением в портал Azure.
- Подготовьте ту же архитектуру и разверните с помощью Интерфейса командной строки разработчика Azure.
- Оптимизируйте рабочий процесс разработки с помощью GitHub Codespaces и GitHub Copilot.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Если у вас нет учетной записи Azure, ее можно создать бесплатно.
- Учетная запись GitHub. Вы также можете получить его бесплатно.
- Знание Express.js разработки.
- (Необязательно) Чтобы попробовать GitHub Copilot, учетная запись GitHub Copilot. Доступна 30-дневная бесплатная пробная версия.
- Учетная запись Azure с активной подпиской. Если у вас нет учетной записи Azure, ее можно создать бесплатно.
- Установлен интерфейс командной строки разработчика Azure. Вы можете выполнить действия с помощью Azure Cloud Shell , так как он уже установлен с помощью Интерфейса командной строки разработчика Azure.
- Знание Express.js разработки.
- (Необязательно) Чтобы попробовать GitHub Copilot, учетная запись GitHub Copilot. Доступна 30-дневная бесплатная пробная версия.
Перейти к концу
Вы можете быстро развернуть пример приложения в этом руководстве и увидеть его выполнение в Azure. Просто выполните следующие команды в Azure Cloud Shell и следуйте инструкциям в командной строке:
mkdir msdocs-nodejs-mongodb-azure-sample-app
cd msdocs-nodejs-mongodb-azure-sample-app
azd init --template msdocs-nodejs-mongodb-azure-sample-app
azd up
1. Запустите пример
Сначала вы настраиваете пример приложения на основе данных в качестве отправной точки. Для удобства пример репозитория включает конфигурацию контейнера разработки. Контейнер разработки имеет все необходимое для разработки приложения, включая базу данных, кэш и все переменные среды, необходимые образцу приложения. Контейнер разработки может выполняться в пространстве кода GitHub, что означает, что вы можете запустить пример на любом компьютере с веб-браузером.
Шаг 1. В новом окне браузера:
- Войдите в свою учетную запись GitHub.
- Перейдите к https://github.com/Azure-Samples/msdocs-nodejs-mongodb-azure-sample-app/fork.
- Отмена выбора только для копирования основной ветви. Вы хотите, чтобы все ветви.
- Щелкните Создать вилку.
Шаг 2. В вилке GitHub:
- Выберите основную начальную>ветвь без инфраструктуры для начальной ветви. Эта ветвь содержит только пример проекта и не содержит файлов или конфигурации, связанных с Azure.
- Выберите пространство кода "Создать код>" на начальном экране без инфраструктуры. Пространство кода занимает несколько минут, чтобы настроить.
Шаг 3. В терминале пространства кода:
- Запустите
npm install && npm start
. - Когда появится уведомление
Your application running on port 3000 is available.
, нажмите кнопку "Открыть в браузере". Пример приложения должен отображаться на новой вкладке браузера. Чтобы остановить приложение Express.js, введитеCtrl
+C
.
Совет
Вы можете попросить GitHub Copilot об этом репозитории. Например:
- @workspace Что делает этот проект?
- @workspace Что делает папка devcontainer?
Возникли проблемы? Ознакомьтесь с разделом "Устранение неполадок".
2. Создание Служба приложений и Azure Cosmos DB
В этом шаге вы создадите ресурсы Azure. Действия, используемые в этом руководстве, создают набор защищенных по умолчанию ресурсов, которые включают Служба приложений и Azure Cosmos DB для MongoDB. В процессе создания вы укажете следующее:
- Имя веб-приложения. Он используется в качестве части DNS-имени приложения в виде
https://<app-name>-<hash>.<region>.azurewebsites.net
. - Регион для физического запуска приложения. Он также используется в качестве части DNS-имени приложения.
- Стек среды выполнения для приложения. Здесь следует выбрать версию Node, которая будет использоваться для приложения.
- План размещения для приложения. Это ценовая категория, которая включает набор функций и емкость масштабирования для вашего приложения.
- Группа ресурсов для приложения. Группа ресурсов позволяет группировать (в логическом контейнере) все ресурсы Azure, необходимые для приложения.
Войдите на портал Azure и выполните следующие действия, чтобы создать ресурсы Службы приложений Azure.
Шаг 1. В портал Azure:
- Введите "веб-приложение база данных" в строке поиска в верхней части портала Azure.
- Выберите элемент с меткой Веб-приложение и база данных под заголовком Marketplace. Вы также можете перейти напрямую к мастеру создания.
Шаг 2. На странице "Создание веб-приложения + база данных " заполните форму следующим образом.
- Группа ресурсов: выберите "Создать" и используйте имя msdocs-expressjs-mongodb-tutorial.
- Регион: любой регион Azure рядом с вами.
- Имя: msdocs-expressjs-mongodb-XYZ, где XYZ является тремя случайными символами.
- Стек среды выполнения: Узел 20 LTS.
- Подсистема: API Cosmos DB для MongoDB. Azure Cosmos DB — это облачная база данных, предлагающая API со 100 % совместимостью с MongoDB. Запишите созданное имя базы данных (<имя-приложения>-database). Оно понадобится вам позже.
- План размещения: базовый. Когда вы будете готовы, вы можете масштабировать до рабочей ценовой категории.
- Выберите Review + create (Просмотреть и создать).
- После завершения проверки щелкните Создать.
Шаг 3. Развертывание занимает несколько минут. После завершения развертывания нажмите кнопку Перейти к ресурсу. Вы перейдете непосредственно в приложение Службы приложений, но будут созданы следующие ресурсы:
- Группа ресурсов — Контейнер для всех созданных ресурсов.
- План службы приложений — определяет вычислительные ресурсы для Службы приложений. Создается план Linux на уровне Базовый.
- Служба приложений — представляет приложение и выполняется в плане службы приложений.
- Виртуальная сеть — интегрирована с приложением Службы приложений и изолирует внутренний сетевой трафик.
- Частная конечная точка — конечная точка доступа к ресурсу базы данных в виртуальной сети.
- Сетевой интерфейс — представляет частный IP-адрес для частной конечной точки.
- Azure Cosmos DB для MongoDB → доступ только из частной конечной точки. База данных и пользователь создаются на этом сервере.
- Частная зона DNS зона → включает разрешение DNS сервера Azure Cosmos DB в виртуальной сети.
Возникли проблемы? Ознакомьтесь с разделом "Устранение неполадок".
3. Безопасные секреты подключения
Мастер создания создал строку подключения для вас уже в качестве параметра приложения. Однако рекомендуется сохранить секреты из Служба приложений полностью. Вы переместите секреты в хранилище ключей и измените параметр приложения на ссылку Key Vault с помощью соединителей служб.
Шаг 1. На странице Служба приложений:
- В меню слева выберите переменные среды параметров>.
- Рядом с AZURE_COSMOS_CONNECTIONSTRING выберите "Показать значение". Это строка подключения позволяет подключиться к базе данных Cosmos DB, защищенной за частной конечной точкой. Однако секрет сохраняется непосредственно в приложении Служба приложений, что не является лучшим. Вы измените это.
Шаг 2. Создание хранилища ключей для безопасного управления секретами.
- В верхней строке поиска введите "хранилище ключей", а затем выберите Marketplace>Key Vault.
- В группе ресурсов выберите msdocs-expressjs-mongodb-tutorial.
- В имени хранилища ключей введите имя, состоящее только из букв и чисел.
- В регионе задайте для него образец расположения в качестве группы ресурсов.
Шаг 3.
- Перейдите на вкладку Сеть.
- Отмена выбора включения общедоступного доступа.
- Выберите "Создать частную конечную точку".
- В группе ресурсов выберите msdocs-expressjs-mongodb-tutorial.
- В имени хранилища ключей введите имя, состоящее только из букв и чисел.
- В регионе задайте для него образец расположения в качестве группы ресурсов.
- В диалоговом окне в расположении выберите то же расположение, что и приложение Служба приложений.
- В группе ресурсов выберите msdocs-expressjs-mongodb-tutorial.
- В поле Name введите msdocs-expressjs-mongodb-XYZVaultEndpoint.
- В виртуальной сети выберите msdocs-expressjs-mongodb-XYZVnet.
- В подсети msdocs-expressjs-mongodb-XYZSubnet.
- Нажмите ОК.
- Выберите Проверить и создать, а затем выберите Создать. Дождитесь завершения развертывания хранилища ключей. Должно появиться сообщение "Развертывание завершено".
Шаг 4.
- В верхней строке поиска введите msdocs-expressjs-mongodb, а затем ресурс Служба приложений с именем msdocs-expressjs-mongodb-XYZ.
- На странице Служба приложений в меню слева выберите "Параметры > соединителя службы". У вас уже есть соединитель, созданный мастером создания приложения.
- Установите флажок рядом с соединителем, а затем нажмите кнопку "Изменить".
- На вкладке "Основные сведения" задайте для типа клиента значение Node.js.
- Выберите вкладку Аутентификация.
- Выберите "Сохранить секрет" в Key Vault.
- В разделе "Подключение к Key Vault" выберите "Создать". Диалоговое окно создания подключения открывается поверх диалогового окна редактирования.
Шаг 5. В диалоговом окне создания подключения для подключения Key Vault:
- В Key Vault выберите созданное ранее хранилище ключей.
- Выберите Review + Create (Просмотреть и создать). Вы увидите, что управляемое удостоверение, назначаемое системой, имеет значение Selected.
- После завершения проверки нажмите кнопку "Создать".
Шаг 6. Вы снова в диалоговом окне редактирования для defaultConnector.
- На вкладке "Проверка подлинности" дождитесь создания соединителя хранилища ключей. По завершении раскрывающийся список подключения Key Vault автоматически выбирает его.
- Выберите Далее: сеть.
- Выберите " Настроить правила брандмауэра", чтобы включить доступ к целевой службе. Если появится сообщение "Нет частной конечной точки в целевой службе", игнорируйте его. Мастер создания приложения уже защитил базу данных Cosmos DB с частной конечной точкой.
- Выберите Сохранить. Подождите, пока появится уведомление об успешном обновлении.
Шаг 7. Проверка изменений:
Возникли проблемы? Ознакомьтесь с разделом "Устранение неполадок".
4. Развертывание примера кода
На этом шаге вы настроите развертывание GitHub с помощью GitHub Actions. Это всего лишь один из множества способов развертывания в Службе приложений, но это также отличный способ обеспечения непрерывной интеграции в процессе развертывания. По умолчанию каждый git push
из репозитория GitHub запускает действие сборки и развертывания.
Шаг 1. В меню слева выберите центр развертывания>.
Шаг 2. На странице Центра развертывания:
- В поле Источник выберите GitHub. По умолчанию в качестве поставщика сборки выбрано GitHub Actions.
- Войдите в свою учетную запись GitHub и следуйте инструкциям по авторизации Azure.
- В поле Организация выберите свою учетную запись.
- В репозитории выберите msdocs-nodejs-mongodb-azure-sample-app.
- В ветви выберите starter-no-infra. Это та же ветвь, в которую вы работали с примером приложения, без файлов или конфигурации, связанных с Azure.
- Для типа проверки подлинности выберите удостоверение, назначаемое пользователем.
- В меню сверху выберите Сохранить. Служба приложений фиксирует файл рабочего процесса в выбранном репозитории GitHub в каталоге
.github/workflows
. По умолчанию центр развертывания создает назначаемое пользователем удостоверение для рабочего процесса для проверки подлинности с помощью Microsoft Entra (проверка подлинности OIDC). Дополнительные сведения о вариантах проверки подлинности см. в статье "Развертывание в Служба приложений с помощью GitHub Actions".
Шаг 3. Вернитесь в пространство кода GitHub примера вилки, выполните команду git pull origin starter-no-infra
.
Это извлекает только что зафиксированный файл рабочего процесса в пространство кода.
Шаг 4 (вариант 1: с GitHub Copilot):
- Запустите новый сеанс чата, выбрав представление чата, а затем выберите +.
- Спросите: "@workspace Как приложение подключается к базе данных?". Copilot может указывать на файл app.js и
mongoose.connect
вызов. - Скажем: "*У меня есть переменная строка подключения в Azure с именем AZURE_COSMOS_CONNECTIONSTRING.". Copilot может дать вам предложение кода, аналогичное варианту 2: без шагов GitHub Copilot ниже и даже сообщить вам, чтобы внести изменения в app.js.
- Откройте app.js в обозревателе и добавьте предложение кода в
getApp
метод. GitHub Copilot не дает вам одинаковый ответ каждый раз, вам может потребоваться задать дополнительные вопросы, чтобы точно настроить его ответ. Советы см. в статье "Что можно сделать с помощью GitHub Copilot в моем пространстве кода?".
Шаг 4 (вариант 2: без GitHub Copilot):
- В обозревателе откройте app.js.
- Найдите строку, в которой
mongoose.connect
вызывается (строка 16) и перейдите наprocess.env.MONGODB_URI
process.env.AZURE_COSMOS_CONNECTIONSTRING || process.env.MONGODB_URI
.
Шаг 5.
- Выберите расширение Система управления версиями.
- В текстовом поле введите сообщение фиксации, например
Update environment variable
. Кроме того, выберите и позвольте GitHub Copilot создать сообщение о фиксации. - Нажмите кнопку "Зафиксировать", а затем подтвердите значение "Да".
- Нажмите кнопку "Синхронизировать изменения 1", а затем нажмите кнопку "ОК".
Шаг 6. Назад на странице Центра развертывания в портал Azure:
- На вкладке "Журналы" выберите "Обновить". Новый запуск развертывания уже запущен из зафиксированных изменений.
- В элементе журнала для запуска развертывания выберите запись "Сборка и развертывание журналов " с последней меткой времени.
Шаг 7. Вы перейдете в репозиторий GitHub и увидите, что действие GitHub выполняется. Файл рабочего процесса определяет два отдельных этапа: сборку и развертывание. Дождитесь, пока в выполнении действия GitHub не будет показано состояние Завершено.
Возникли проблемы? Ознакомьтесь с разделом "Устранение неполадок".
5. Перейдите к приложению
Шаг 1. На странице Служба приложений:
- В меню слева выберите Обзор.
- Выберите URL-адрес своего приложения. Также можно перейти непосредственно по адресу
https://<app-name>.azurewebsites.net
.
Шаг 2. Добавление нескольких задач в список. Вы запустили безопасное управляемое данными приложение Node.js в Службе приложений Azure.
6. Потоковая передача журналов диагностики
Служба приложений Azure захватывает все сообщения, выводимые на консоль, чтобы помочь в диагностике проблем приложения. Пример приложения выводит сообщения журнала консоли в каждой из своих конечных точек для демонстрации этой возможности. Например, конечная точка get
выводит сообщение о количестве задач, полученных из базы данных, и если что-то идет не так, появляется сообщение об ошибке.
router.get('/', function(req, res, next) {
Task.find()
.then((tasks) => {
const currentTasks = tasks.filter(task => !task.completed);
const completedTasks = tasks.filter(task => task.completed === true);
console.log(`Total tasks: ${tasks.length} Current tasks: ${currentTasks.length} Completed tasks: ${completedTasks.length}`)
res.render('index', { currentTasks: currentTasks, completedTasks: completedTasks });
})
.catch((err) => {
console.log(err);
res.send('Sorry! Something went wrong.');
});
});
Шаг 1. На странице Служба приложений:
- В меню слева выберите Журналы службы приложений.
- Под элементом Ведение журнала приложения выберите Файловая система.
- В меню сверху выберите Сохранить.
Шаг 2. В меню слева выберите поток журналов. Вы увидите журналы для своего приложения, включая журналы платформы и журналы из контейнера.
7. Проверка развернутых файлов с помощью Kudu
Служба приложений Azure предоставляет веб-консоль диагностики с именем Kudu, которая позволяет проверять среду размещения сервера для веб-приложения. С помощью Kudu можно просматривать файлы, развернутые в Azure, проверять журнал развертывания приложения и даже открыть сеанс SSH в среде размещения.
Шаг 1. На странице Служба приложений:
- В меню слева выберите Дополнительные инструменты.
- Выберите Выполнить. Также можно перейти непосредственно по адресу
https://<app-name>.scm.azurewebsites.net
.
Шаг 2. На странице Kudu выберите "Развертывания".
Если вы развертываете код для Служба приложений с помощью Git или ZIP-развертывания, вы увидите журнал развертываний веб-приложения.
Шаг 3. Вернитесь на домашнюю страницу Kudu и выберите сайт wwwroot.
Вы можете увидеть развернутую структуру папок и выбрать, чтобы просмотреть и просмотреть файлы.
8. Очистка ресурсов
По завершении работы можно удалить все ресурсы из вашей подписки Azure, удалив соответствующую группу ресурсов.
Шаг 1. В строке поиска в верхней части портал Azure:
- Введите имя группы ресурсов.
- Выберите группу ресурсов.
Шаг 2. На странице группы ресурсов выберите "Удалить группу ресурсов".
Шаг 3.
- Введите имя группы ресурсов для подтверждения удаления.
- Выберите команду Удалить.
2. Создание ресурсов Azure и развертывание примера приложения
На этом шаге вы создадите ресурсы Azure и развернете пример приложения для Служба приложений в Linux. Действия, используемые в этом руководстве, создают набор безопасных ресурсов по умолчанию, которые включают Служба приложений и Azure Cosmos DB.
Контейнер разработки уже имеет интерфейс командной строки разработчика Azure (AZD).
Выполните команду
azd init
из корневого каталога репозитория.azd init --template nodejs-app-service-cosmos-redis-infra
При появлении запроса укажите следующие ответы:
Вопрос Ответ Текущий каталог не пуст. Вы хотите инициализировать проект здесь в каталоге<>? Y Что вы хотите сделать с этими файлами? Сохранение существующих файлов без изменений Введите новое имя среды Введите уникальное имя. Шаблон AZD использует это имя как часть DNS-имени веб-приложения в Azure ( <app-name>-<hash>.azurewebsites.net
). Разрешены буквенно-цифровые символы и дефисы.Войдите в Azure, выполнив
azd auth login
команду и выполнив следующую команду:azd auth login
Создайте необходимые ресурсы Azure и разверните код приложения с
azd up
помощью команды. Следуйте запросу, чтобы выбрать нужную подписку и расположение для ресурсов Azure.azd up
Выполнение
azd up
команды занимает около 15 минут (кэш Redis занимает больше всего времени). Он также компилирует и развертывает код приложения, но вы измените код позже, чтобы работать с Служба приложений. Во время выполнения команда предоставляет сообщения о процессе подготовки и развертывания, включая ссылку на развертывание в Azure. По завершении команда также отображает ссылку на приложение развертывания.Этот шаблон AZD содержит файлы (azure.yaml и инфракрасный каталог), создающие безопасную архитектуру по умолчанию со следующими ресурсами Azure:
- Группа ресурсов: контейнер для всех созданных ресурсов.
- Служба приложений план. Определяет вычислительные ресурсы для Служба приложений. Создается план Linux на уровне B1 .
- Служба приложений. Представляет приложение и запускается в плане Служба приложений.
- Виртуальная сеть: интегрированная с приложением Служба приложений и изолирует внутренний сетевой трафик.
- Учетная запись Azure Cosmos DB с API MongoDB: доступна только за частной конечной точкой. База данных создается для вас на сервере.
- Кэш Azure для Redis. Доступно только из виртуальной сети.
- Хранилище ключей: доступно только из своей частной конечной точки. Используется для управления секретами для приложения Служба приложений.
- Частные конечные точки: доступ к конечным точкам для хранилища ключей, сервера базы данных и кэша Redis в виртуальной сети.
- Частная зона DNS зонах: включите разрешение DNS базы данных Cosmos DB, кэш Redis и хранилище ключей в виртуальной сети.
- Рабочая область Log Analytics: выступает в качестве целевого контейнера для вашего приложения для отправки журналов, где можно также запрашивать журналы.
Когда команда завершит создание ресурсов и развертывание кода приложения в первый раз, развернутое пример приложения еще не работает, так как необходимо внести небольшие изменения, чтобы подключиться к базе данных в Azure.
3. Проверка строка подключения
Шаблон AZD, который вы используете, создали переменные подключения для вас уже в качестве параметров приложения и выводит их в терминал для удобства. Параметры приложения — это один из способов сохранения секретов подключения из репозитория кода.
В выходных данных AZD найдите параметр
AZURE_COSMOS_CONNECTIONSTRING
приложения. Отображаются только имена параметров. Они выглядят следующим образом в выходных данных AZD:App Service app has the following app settings: - AZURE_COSMOS_CONNECTIONSTRING - AZURE_REDIS_CONNECTIONSTRING - AZURE_KEYVAULT_RESOURCEENDPOINT - AZURE_KEYVAULT_SCOPE
AZURE_COSMOS_CONNECTIONSTRING
содержит строка подключения в базу данных Cosmos DB в Azure. Позже его необходимо использовать в коде.Для удобства шаблон AZD отображает прямую ссылку на страницу параметров приложения. Найдите ссылку и откройте ее на новой вкладке браузера.
Возникли проблемы? Ознакомьтесь с разделом "Устранение неполадок".
4. Изменение примера кода и повторное развертывание
В пространстве кода GitHub запустите новый сеанс чата, щелкнув представление чата , а затем щелкните +.
Спросите: "@workspace Как приложение подключается к базе данных?". Copilot может указывать на файл app.js и
mongoose.connect
вызов.Скажите: "У меня есть переменная строка подключения в Azure с именем AZURE_COSMOS_CONNECTIONSTRING.". Copilot может дать вам предложение кода, аналогичное варианту 2: без шагов GitHub Copilot ниже и даже сообщить вам, чтобы внести изменения в app.js.
Откройте app.js в обозревателе и добавьте предложение кода в
getApp
метод.GitHub Copilot не дает вам одинаковый ответ каждый раз, вам может потребоваться задать дополнительные вопросы, чтобы точно настроить его ответ. Советы см. в статье "Что можно сделать с помощью GitHub Copilot в моем пространстве кода?".
Вернитесь в терминал пространства кода, выполните команду
azd deploy
.azd deploy
Совет
Вы также можете использовать azd up
всегда, что делает все azd package
, azd provision
и azd deploy
.
Возникли проблемы? Ознакомьтесь с разделом "Устранение неполадок".
5. Перейдите к приложению
В выходных данных AZD найдите URL-адрес приложения и перейдите к нему в браузере. URL-адрес выглядит следующим образом в выходных данных AZD:
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: https://<app-name>-<hash>.azurewebsites.net/
Добавьте несколько задач в список.
Поздравляем, вы запускаете веб-приложение в службе приложение Azure с безопасным подключением к Azure Cosmos DB.
Возникли проблемы? Ознакомьтесь с разделом "Устранение неполадок".
6. Потоковая передача журналов диагностики
Служба приложений Azure захватывает все сообщения, выводимые на консоль, чтобы помочь в диагностике проблем приложения. Пример приложения выводит сообщения журнала консоли в каждой из своих конечных точек для демонстрации этой возможности. Например, конечная точка get
выводит сообщение о количестве задач, полученных из базы данных, и если что-то идет не так, появляется сообщение об ошибке.
router.get('/', function(req, res, next) {
Task.find()
.then((tasks) => {
const currentTasks = tasks.filter(task => !task.completed);
const completedTasks = tasks.filter(task => task.completed === true);
console.log(`Total tasks: ${tasks.length} Current tasks: ${currentTasks.length} Completed tasks: ${completedTasks.length}`)
res.render('index', { currentTasks: currentTasks, completedTasks: completedTasks });
})
.catch((err) => {
console.log(err);
res.send('Sorry! Something went wrong.');
});
});
В выходных данных AZD найдите ссылку для потоковой передачи журналов Служба приложений и перейдите к нему в браузере. Ссылка выглядит следующим образом в выходных данных AZD:
Stream App Service logs at: https://portal.azure.com/#@/resource/subscriptions/<subscription-guid>/resourceGroups/<group-name>/providers/Microsoft.Web/sites/<app-name>/logStream
Узнайте больше о ведении журнала в приложениях Java в серии о включении Azure Monitor OpenTelemetry для приложений .NET, Node.js, Python и Java.
Возникли проблемы? Ознакомьтесь с разделом "Устранение неполадок".
7. Очистка ресурсов
Чтобы удалить все ресурсы Azure в текущей среде развертывания, выполните azd down
и следуйте инструкциям.
azd down
Устранение неполадок
- В представлении развертывания портала для Azure Cosmos DB отображается состояние конфликта
- На странице браузера развернутого приложения говорится: "Что-то пошло не так".
В представлении развертывания портала для Azure Cosmos DB отображается состояние конфликта
В зависимости от выбранной подписки и выбранного региона может появиться состояние развертывания Azure Cosmos DB Conflict
со следующим сообщением в разделе "Сведения об операциях".
Sorry, we are currently experiencing high demand in <region> region, and cannot fulfill your request at this time.
Эта ошибка, скорее всего, вызвана ограничением подписки для выбранного региона. Попробуйте выбрать другой регион для развертывания.
На странице браузера развернутого приложения говорится: "Что-то пошло не так".
Возможно, вам по-прежнему нужно внести строка подключения изменения в коде приложения. См . 4. Разверните пример кода.
Часто задаваемые вопросы
- Сколько стоит такая конфигурация?
- Разделы справки подключиться к серверу Azure Cosmos DB, защищенному за виртуальной сетью с другими инструментами?
- Как осуществляется разработка локальных приложений с использованием GitHub Actions?
- Почему развертывание GitHub Actions идет так медленно?
- У меня нет разрешений на создание удостоверения, назначаемого пользователем
- Что можно сделать с помощью GitHub Copilot в моем пространстве кода?
Сколько стоит такая конфигурация?
Цены на созданные ресурсы приведены следующим образом:
- План службы приложений создается на уровне Базовый, и его можно масштабировать вверх или вниз. См. цены на Службу приложений.
- Сервер Azure Cosmos DB создается в одном регионе и может быть распределен по другим регионам. См. страницу цен на Azure Cosmos DB.
- Плата за виртуальную сеть не взимается, если только вы не настроите дополнительные функциональные возможности, такие как пиринг. См. цены на виртуальные сети Azure.
- За частную зону DNS взимается небольшая плата. См. цены на Azure DNS.
Разделы справки подключиться к серверу Azure Cosmos DB, защищенному за виртуальной сетью с другими инструментами?
- Для базового доступа из программы командной строки можно запустить
mongosh
из терминала SSH приложения. Контейнер приложения не предоставляется вместе сmongosh
, поэтому его необходимо установить вручную. Помните, что установленный клиент не сохраняется во время перезапуска приложения. - Чтобы подключиться из клиента MongoDB с графическим пользовательским интерфейсом, компьютер должен находиться в соответствующей виртуальной сети. Например, это может быть виртуальная машина Azure, подключенная к одной из подсетей, или компьютер в локальной сети с VPN-подключением типа "сеть — сеть" к виртуальной сети Azure.
- Чтобы подключиться из оболочки MongoDB на странице управления Azure Cosmos DB на портале, компьютер также должен находиться в виртуальной сети. Вместо этого можно открыть брандмауэр сервера Azure Cosmos DB для IP-адреса локального компьютера, но он увеличивает область атаки для конфигурации.
Как осуществляется разработка локальных приложений с использованием GitHub Actions?
Возьмем автоматически созданный файл рабочего процесса из Службы приложений в качестве примера, где каждый git push
запускает новый прогон сборки и развертывания. Из локального клона репозитория GitHub вы вносите необходимые обновления в GitHub. Например:
git add .
git commit -m "<some-message>"
git push origin main
Почему развертывание GitHub Actions идет так медленно?
Автоматически созданный файл рабочего процесса из Службы приложений определяет прогон из двух заданий — сначала сборка, потом развертывание. Так как каждое задание выполняется в собственной чистой среде, файл рабочего процесса гарантирует, что задание deploy
имеет доступ к файлам из задания build
:
- В конце задания
build
отправьте файлы в виде артефактов. - В начале задания
deploy
скачайте эти артефакты.
Большая часть времени, затрачиваемого процессом из двух заданий, уходит на отправку и скачивание артефактов. При желании файл рабочего процесса можно упростить, объединив два задания в одно, что устраняет необходимость в шагах отправки и скачивания.
У меня нет разрешений на создание удостоверения, назначаемого пользователем
См. статью "Настройка развертывания GitHub Actions" из Центра развертывания.
Что можно сделать с помощью GitHub Copilot в моем пространстве кода?
Вы можете заметить, что представление чата GitHub Copilot уже было там, когда вы создали пространство кода. Для удобства мы добавим расширение чата GitHub Copilot в определение контейнера (см . статью .devcontainer/devcontainer.json). Однако вам нужна учетная запись GitHub Copilot (доступна бесплатная пробная версия 30 дней).
Несколько советов для вас при разговоре с GitHub Copilot:
- В одном сеансе чата вопросы и ответы создаются друг на друга, и вы можете настроить свои вопросы, чтобы точно настроить ответ, который вы получаете.
- По умолчанию GitHub Copilot не имеет доступа к файлу в репозитории. Чтобы задать вопросы о файле, сначала откройте файл в редакторе.
- Чтобы разрешить GitHub Copilot получить доступ ко всем файлам в репозитории при подготовке его ответов, начните с вашего вопроса
@workspace
. Дополнительные сведения см. в разделе Use the @workspace agent. - В сеансе чата GitHub Copilot может предложить изменения и (с
@workspace
) даже там, где внести изменения, но не разрешено вносить изменения. Это до вас, чтобы добавить предлагаемые изменения и проверить его.
Вот некоторые другие вещи, которые вы можете сказать, чтобы точно настроить ответ, который вы получаете:
- @workspace Где определяется MONGODB_URI?
- В какой файл я внося изменения?
- Изменится ли это изменение при локальном запуске приложения?