Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Служба приложений Azure предоставляет высокомасштабируемую, самостоятельно обновляющуюся веб-платформу хостинга на основе операционной системы Linux. В этом руководстве показано, как создать безопасное приложение Node.js в Службе приложений Azure, подключенное к базе данных Azure Cosmos DB для MongoDB . По завершении вы получите приложение Express.js, работающее в Службе приложений Azure в Linux.
В этом руководстве вы узнаете, как:
- Создайте безопасную архитектуру по умолчанию для службы приложение Azure и Azure Cosmos DB с помощью API MongoDB.
- Обеспечьте безопасность секретов подключения, используя управляемую идентификацию и ссылки на Key Vault.
- Разверните пример приложения Node.js в службе приложений из репозитория GitHub.
- Доступ к параметрам приложения Служба приложений в коде приложения.
- Внесите обновления и заново разверните код приложения.
- Потоковая передача журналов диагностики из Служба приложений.
- Управляйте приложением в портале Azure.
- Подготовьте ту же архитектуру и разверните её с помощью Azure Developer CLI.
- Оптимизируйте ваш процесс разработки с помощью GitHub Codespaces и GitHub Copilot.
Предпосылки
- Учетная запись Azure с активной подпиской. Если у вас нет учетной записи Azure, вы можете создать её бесплатно.
- Учетная запись GitHub. Вы также можете получить его бесплатно.
- Знание Express.js разработки.
- (Необязательно) Чтобы попробовать GitHub Copilot, необходима учетная запись GitHub Copilot. Доступна 30-дневная бесплатная пробная версия.
- Учетная запись Azure с активной подпиской. Если у вас нет учетной записи Azure, вы можете создать её бесплатно.
- Azure Developer CLI установлен. Вы можете выполнить действия в 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:
- Выберите main>starter-no-infra для начальной ветви. Эта ветвь содержит только пример проекта и не содержит файлов или конфигурации, связанных с Azure.
- Выберите Код>Создать codespace на starter-no-infra. Настройка кодового пространства занимает несколько минут.
Step 3: В терминале codespace:
- Выполните
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-имени приложения.
- Регион для физического запуска приложения в мире. Он также используется как часть DNS-имени вашего приложения.
- Runtime stack для приложения. Здесь вы выбираете версию Node, используемую для приложения.
- Тарифный план хостинга для приложения. Это уровень цен, который включает набор функций и возможности масштабирования для вашего приложения.
- Группа ресурсов для приложения. Группа ресурсов позволяет вам сгруппировать (в логический контейнер) все ресурсы Azure, необходимые для приложения.
Войдите на портал Azure и выполните следующие действия, чтобы создать ресурсы Службы приложений Azure.
Шаг 1. На портале Azure:
- Введите "web app database" в строку поиска в верхней части портала Azure.
- Выберите элемент с меткой Веб-приложение и база данных под заголовком Marketplace. Вы также можете перейти напрямую к мастеру создания.
Шаг 2: На странице Создание веб-приложения и базы данных заполните форму следующим образом.
- Группа ресурсов: выберите "Создать" и используйте имя msdocs-expressjs-mongodb-tutorial.
- Регион: Любой регион Azure рядом с вами.
- Имя: msdocs-expressjs-mongodb-XYZ, где XYZ является тремя случайными символами.
- Стек среды выполнения: Узел 20 LTS.
- Механизм: API Cosmos DB для MongoDB. Azure Cosmos DB — это облачная база данных, предлагающая 100% СОВМЕСТИМЫЙ API MongoDB. Обратите внимание на имя базы данных, созданное для вас (<app-name-database>). Оно понадобится вам позже.
- План размещения: базовый. Когда будете готовы, вы можете перейти на производственный уровень цен.
- Выберите Review + create.
- После завершения проверки нажмите кнопку "Создать".
Шаг 3. Развертывание занимает несколько минут. После завершения развертывания нажмите кнопку Перейти к ресурсу. Вы сразу попадаете в приложение App Service, но при этом создаются следующие ресурсы:
- Группа ресурсов — Контейнер для всех созданных ресурсов.
- План службы приложений — определяет вычислительные ресурсы для Службы приложений. Создается план Linux на уровне Базовый.
- Служба приложений — представляет ваше приложение и выполняется в плане службы приложений.
- Виртуальная сеть — интегрирована с приложением Службы приложений и изолирует внутренний сетевой трафик.
- Частная конечная точка → доступ к ресурсу базы данных в виртуальной сети.
- Сетевой интерфейс → Представляет частный IP-адрес для частной конечной точки.
- Azure Cosmos DB для MongoDB → доступ только из частной конечной точки. На сервере создаются база данных и пользователь для вас.
- Частная зона DNS → включает разрешение DNS сервера Azure Cosmos DB в виртуальной сети.
Есть проблемы? Ознакомьтесь с разделом "Устранение неполадок".
3. Безопасные секреты подключения
Мастер настройки уже создал строку подключения для вас в виде параметра приложения. Однако лучшая практика безопасности состоит в том, чтобы хранить секреты полностью вне Службы приложений. Вы переместите свои секреты в хранилище ключей и измените параметр приложения на ссылку на хранилище ключей с помощью соединителей служб.
Шаг 1. На странице службы приложений:
- В меню слева выберите Параметры > переменные среды.
- Рядом с AZURE_COSMOS_CONNECTIONSTRING выберите "Показать значение". Строка подключения позволяет подключиться к базе данных Cosmos DB, находящейся за частной конечной точкой. Однако секрет сохраняется непосредственно в приложении службы приложений, что не является лучшим вариантом. Вы измените это.
Шаг 2. Создание хранилища ключей для безопасного управления секретами.
- В верхней строке поиска введите "key vault", затем выберите Marketplace>Key Vault.
- В группе ресурсов выберите msdocs-expressjs-mongodb-tutorial.
- В Имя хранилища ключей введите имя, которое состоит только из букв и цифр.
- В регионе задайте для него образец расположения в качестве группы ресурсов.
Шаг 3.
- Выберите вкладку "Сеть".
- Отмена выбора включения общедоступного доступа.
- Выберите Создать частную конечную точку.
- В группе ресурсов выберите msdocs-expressjs-mongodb-tutorial.
- В Имя хранилища ключей введите имя, которое состоит только из букв и цифр.
- В регионе задайте для него образец расположения в качестве группы ресурсов.
- В диалоговом окне в разделе Расположение выберите то же расположение, что и для вашего приложения App Service.
- В группе ресурсов выберите 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.
- На странице App Service в левом меню выберите Настройки > Service Connector. Уже есть разъём, который мастер создания приложения создал для вас.
- Установите флажок рядом с соединителем, а затем нажмите кнопку "Изменить".
- На вкладке "Основные сведения" задайте для типа клиента значениеNode.js.
- Выберите вкладку Аутентификация.
- Выберите "Сохранить секрет" в Key Vault.
- Под Подключение к хранилищу ключей выберите Создать новое. Диалоговое окно создания подключения открывается поверх диалогового окна редактирования.
Шаг 5: В диалоговом окне создания подключения Key Vault:
- В Key Vault выберите созданное ранее хранилище ключей.
- Выберите Review + Create. Вы должны увидеть, что управляемое удостоверение, назначаемое системой установлено в положение Выбрано.
- Когда проверка завершится, выберите Создать.
Шаг 6. Вы снова в диалоговом окне редактирования для defaultConnector.
- На вкладке «Аутентификация» дождитесь создания подключения к хранилищу ключей. Когда это будет завершено, выпадающий список Key Vault Connection автоматически выберет его.
- Выберите Next: Networking.
- Выберите " Настроить правила брандмауэра", чтобы включить доступ к целевой службе. Если появится сообщение "Нет частной конечной точки в целевой службе", игнорируйте его. Мастер создания приложения уже защитил базу данных Cosmos DB с частной конечной точкой.
- Нажмите кнопку "Сохранить". Подождите, пока появится уведомление об успешном обновлении .
Шаг 7. Проверка изменений:
- В меню слева снова выберите переменные среды.
- Рядом с параметром приложения AZURE_COSMOS_CONNECTIONSTRING выберите "Показать значение". Значение должно быть
@Microsoft.KeyVault(...)
. Это означает, что это ссылка на хранилище ключей , так как секрет теперь управляется в хранилище ключей.
Есть проблемы? Ознакомьтесь с разделом "Устранение неполадок".
4. Развертывание примера кода
На этом шаге вы настроите развертывание GitHub с помощью GitHub Actions. Это всего лишь один из множества способов развертывания в Службе приложений, но это также отличный способ обеспечения непрерывной интеграции в процессе развертывания. По умолчанию каждый git push
из репозитория GitHub запускает действие сборки и развертывания.
Шаг 1. В меню слева выберитеЦентр развертывания>.
Шаг 2. На странице Центра развертывания:
- В поле Источник выберите GitHub. По умолчанию в качестве поставщика сборки выбран GitHub Actions.
- Войдите в свой аккаунт GitHub и следуйте указаниям, чтобы авторизовать Azure.
- В поле Организация выберите свою учетную запись.
- В репозитории выберите msdocs-nodejs-mongodb-azure-sample-app.
- В Branch выберите 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-адрес вашего приложения.
Шаг 2. Добавление нескольких задач в список. Поздравляем, вы запускаете защищенное приложение на основе данных Node.js в Службе приложений Azure.
Трансляция диагностических журналов
Служба приложений 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. На странице службы приложений:
- В меню слева выберите "Дополнительные инструменты".
- Нажмите кнопку "Перейти".
Шаг 2. На странице Kudu выберите "Развертывания".
Если вы развертываете код в Службе приложений с помощью Git или ZIP-развертывания, вы увидите историю развертываний веб-приложения.
Шаг 3. Вернитесь на домашнюю страницу Kudu и выберите сайт wwwroot.
Вы можете увидеть развернутую структуру папок и выбрать, чтобы просмотреть файлы.
8. Очистите ресурсы
Когда вы закончите, вы можете удалить все ресурсы из вашей подписки Azure, удалив группу ресурсов.
Шаг 1: В строке поиска в верхней части портала Azure:
- Введите имя группы ресурсов.
- Выберите группу ресурсов.
Шаг 2: На странице группы ресурсов выберите Удалить группу ресурсов.
Шаг 3.
- Введите имя группы ресурсов, чтобы подтвердить удаление.
- Нажмите кнопку "Удалить".
2. Создание ресурсов Azure и развертывание примера приложения
На этом этапе вы создаете ресурсы Azure и размещаете образец приложения в службе приложений на Linux. Действия, используемые в этом руководстве, создают набор безопасных ресурсов по умолчанию, которые включают Служба приложений и Azure Cosmos DB.
Контейнер разработчика уже содержит Azure Developer CLI (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 и каталог infra), создающие защищенную по умолчанию архитектуру со следующими ресурсами Azure:
- Группа ресурсов: контейнер для всех созданных ресурсов.
- План службы приложений: определяет вычислительные ресурсы для службы приложений. Создается план Linux в уровне B1.
- App Service: представляет ваше приложение и работает в плане App Service.
- Виртуальная сеть: интегрирована с приложением службы приложений и изолирует внутренний сетевой трафик.
- Учетная запись Azure Cosmos DB с API MongoDB: доступна только через частную конечную точку. База данных создается для вас на сервере.
- Кэш Azure для Redis. Доступно только из виртуальной сети.
- Хранилище ключей: доступно только из собственного частного конечного узла. Используется для управления секретами в приложении App Service.
- Частные конечные точки: доступ к конечным точкам для хранилища ключей, сервера базы данных и кэша 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: <URL>
Добавьте несколько задач в список.
Поздравляем, вы запускаете веб-приложение в службе приложение Azure с безопасным подключением к Azure Cosmos DB.
Есть проблемы? Ознакомьтесь с разделом "Устранение неполадок".
Трансляция диагностических журналов
Служба приложений 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: <URL>
Узнайте подробнее о логировании в приложениях 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, подключенная к одной из подсетей, или машина в локальной сети, которая имеет соединение site-to-site 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?
- В какой файл я внося изменения?
- Станет ли это изменение причиной проблем при локальном запуске приложения?