Введение
API предварительного просмотра команды поддержки возвращает рабочую конфигурацию, а пробный запуск обслуживания отклоняет учетные данные для предварительного просмотра. Рабочее окружение по-прежнему функционирует. Ваша задача — восстановить границу предварительного просмотра, не ослабляя авторизацию обслуживания и не изменяя поведение рабочего окружения.
В этом независимом задании в новой виртуальной машине доступны небольшой Worker, два именованных локальных окружения и тестовые учетные данные. Примените методы настройки конфигурации, загрузки секретов и тестирования среды выполнения из учебных лабораторных работ. Задание считается выполненным, если оба локальных окружения соответствуют приведенному ниже контракту, а затем временные серверы и файлы секретов удалены. Здесь имена preview и live обозначают локальные тестовые окружения; вход в Cloudflare и развертывание не требуются.
Восстановите изоляцию предварительного просмотра
Текущая ситуация
Подготовленный проект находится в /home/labex/project/preview-drift. Установлены Node 22.22.0, локальный для проекта Wrangler 4.131.1 и независимая среда выполнения для тестирования. Серверы разработки пока не запущены. Предоставленный обработчик реализует общедоступную проверку работоспособности и пробный запуск обслуживания; ошибка находится в общедоступной конфигурации окружения preview и загрузке учетных данных.
Область работы
Работайте с файлами wrangler.jsonc, src/index.js, .dev.vars.preview, .dev.vars.live и .gitignore. Изучите обработчик и конфигурацию, чтобы определить контракт привязок. Два dotenv-файла содержат разные случайные учетные данные, предназначенные только для тестирования. Вы можете проверить имена ключей, не выводя их значения. Храните учетные данные только в этой виртуальной машине и исключите их из Git.
Запустите окружение Wrangler preview на loopback-порту 8080, а live — на порту 8081. Для одновременно работающих сред используйте разные порты инспектора. Применяйте обычные команды разработки Wrangler, установленного в проекте; это задание не создает удаленных ресурсов. QUEUE_LABEL — это отображаемая строка, а не сервис очередей.
Цель
Оба локальных окружения должны предоставлять предусмотренную для них общедоступную идентификацию и разрешать обслуживание только с помощью собственной настроенной учетной записи. Preview должен быть изолирован от live, а существующие общедоступная проверка работоспособности и безопасное поведение при ошибках должны сохраниться.
Критерии приемки
- GET
/healthвозвращает JSON со статусомok. Preview сообщает об окруженииpreviewи очередиsandbox, а live — об окруженииliveи очередиprimary. - Каждое окружение загружает собственные тестовые учетные данные через привязку обработчика
MAINTENANCE_TOKEN. Значения двух учетных данных должны различаться и находиться вне исходного кода и общедоступных переменных Wrangler. Локальные dotenv-файлы должны быть доступны только пользователю виртуальной машины и исключены из Git. - POST
/maintenanceвозвращает код 200 сoperation: dry-runи именем окружения только для корректных учетных данных Bearer соответствующего окружения. Отсутствующие, недействительные учетные данные и учетные данные другого окружения возвращают код 401 сerror: unauthorized. - При отсутствии настроенного секрета запрос завершается безопасно: возвращается код 503 и
error: maintenance_unconfigured. GET/maintenanceпо-прежнему возвращает код 405 сerror: method_not_allowed; неизвестный маршрут по-прежнему возвращает код 404 сerror: not_found. - Ответы и журналы приложения не должны содержать значения учетных данных. Оба локальных сервера должны оставаться запущенными для двух проверок этого шага. Авторизация в облаке, развертывание, отчет или скопированный маркер успешного выполнения не требуются.
Подсказки
Сравните источники каждого общедоступного значения
Изучите обращения обработчика к переменным окружения, а затем сравните именованные объекты окружений в wrangler.jsonc. Переменные окружения Wrangler не наследуются автоматически. Выбранное средой выполнения окружение и значения внутри этого окружения — разные вещи.
Разберите ответ maintenance-unconfigured
Отличайте отсутствие настроенной привязки от отклонения входящих учетных данных. Сравните имя привязки в обработчике с именами ключей в dotenv-файле конкретного окружения. Наличие локального файла не гарантирует, что в нем определена привязка, которую читает обработчик. После изменения конфигурации повторно проверьте готовность среды выполнения.
Сохраните поведение live и границу безопасности
Проверьте health и maintenance в обоих направлениях. Токен, действительный в одном окружении, должен быть недействительным в другом. Предоставленная операция обслуживания является пробным запуском, поэтому корректно авторизованный запрос не изменяет данные приложения.
Оставьте рабочее пространство чистым
Текущая ситуация
Исправленные локальные окружения прошли функциональные проверки. Их процессы разработки и файлы с тестовыми учетными данными по-прежнему находятся в этой виртуальной машине.
Область работы
Временными являются только задания разработки этого упражнения на портах 8080 и 8081, файлы .dev.vars.preview и .dev.vars.live, а также переменные оболочки, содержащие их значения. Сохраните исправленные исходный код, конфигурацию, зависимости и сервисы LabEx.
Цель
Исправленный проект должен остаться доступным, но работающие серверы задания и локальные файлы секретов должны быть удалены.
Критерии приемки
- Ни на порту 8080, ни на порту 8081 не должен прослушиваться сервер разработки.
- В каталоге проекта задания не должно остаться файлов секретов
.dev.vars*или.env*. - Очистите переменные оболочки, использованные для тестовых учетных данных. Это действие выполняется учащимся; серверная часть не может проверить состояние вашей интерактивной оболочки.
- Сохраните несвязанные процессы и файлы. В этом локальном задании нет облачных ресурсов или учетных данных Cloudflare, которые нужно удалять.
Подсказки
Работайте с запущенными вами заданиями
Используйте список заданий оболочки, чтобы определить два процесса разработки Wrangler. После перезапуска сервера номера заданий могут измениться. Сначала выполните функциональную проверку и только потом очищайте среду: удаление секретов раньше времени сделало бы предыдущие проверки неубедительными.
Итоги
Вы связали несоответствие идентификации preview со значениями именованного окружения, а ошибку обслуживания — с именем привязки учетных данных. Исправление восстановило изоляцию preview и сохранило поведение live, общедоступную проверку работоспособности и серверную авторизацию.
Проверка отсутствующих, недействительных, межсредовых и корректных учетных данных подтвердила границу надежнее, чем один успешный ответ. В ходе финальной очистки были удалены локальные процессы и тестовые секреты, а исправленный проект сохранен.

