Отладка прикладного решения
Contents
Отладка прикладного решения#
Предупреждение
Экспериментальная функция, работает только на Java 21. Работа в изолированных контурах не гарантируется.
Иногда программную ошибку не получается воспроизвести на тестовых стендах. В таких случаях, gs-ctk позволяет создать среду для отладки прикладного решения в условиях, максимально приближенных к тем, в которых работает основной кластер.
Для этого создается под, в котором стартует тот же сервер приложений, что и обычно, но с включенной подсистемой отладки Java. В поде также есть дополнительный сопровождающий контейнер со средой OpenVSCode Server, подключенной к данной подсистеме. Обычные пользователи не могут подключиться к данному поду без особой ссылки.
Инструкция по отладке#
Требования:
gs-ctk версии
>=5.0
настроенная работающая группа ресурсов с включенными книгами ресурсов
global_server_share
иhaproxy
наличие в комплекте приложений архива
appsrc.zip
, содержащего исходные файлы проекта.
Администратор включает отладку при помощи команды nscli:
~/nscli $ ./cloud_debugger.sh --namespace gs-ctk start --group [имя группы ресурсов]
Точка во времени в формате эпохи Unix, до которой будет доступен отладчик (или укажите от текущего момента указав в качестве значения "+N", где N - время в секундах):+3600 Запускаем облачный отладчик! Облачный отладчик будет доступен до 10:25:54 UTC 19.03.2025 Ожидаем готовности облачного отладчика... Ожидаем готовности облачного отладчика... Ожидаем готовности облачного отладчика... Облачный отладчик готов к использованию! Для доступа к отладчику перейдите по ссылке: (http://example.ru)/debugger/open/gs-cluster-1-debugger-1b0e4084?debugger%2Fvscode%2F%3Ftkn%3Dba0211cf-cd8a-4ba5-b2a2-a5d1791e587b%26folder%3D%2Fuser%2Fapplication Чтобы подключиться к серверу приложений, связанному с отладчиком, перейдите по ссылке: (http://example.ru)/debugger/open/gs-cluster-1-debugger-1b0e4084?login%2Flogin.html
Подстроку
(https://example.ru)
надо подменить на имя хоста, к которому обращается пользователь для подключения к HAProxy. Например:https://globalerp.mycompany.ru/debugger/open/gs-cluster-1-debugger-1b0e4084?debugger%2Fvscode%2F%3Ftkn%3Dba0211cf-cd8a-4ba5-b2a2-a5d1791e587b%26folder%3D%2Fuser%2Fapplication
Администратор передает ссылки лицам, проводящим отладку (далее - разработчикам).
Разработчик переходит в отладчик и на сервер приложений по ссылкам.
Разработчик подтверждает, что он находится в доверенном каталоге
/user/application
, и переходит во вкладку Metals на боковой панеле.В течении 30 секунд должна начаться индексация проекта. Дождитесь завершения. После этого в верхней части вкладки Metals появится список используемых модулей и библиотек.
Если индексация не началась, или после ее завершения модули не появились, нажмите «Import build» в секции «Build Commands» вкладки Metals.
Разработчик открывает нужные модули или библиотеки, устанавливает точки остановы, кликая слева от номера нужной строки.
Разработчик переходит на вкладку Run and Debug боковой панели, нажимает кнопку «Start Debugging».
Отладчик включен и подключен к серверу приложений, интерфейс которого доступен через вторую ссылку. Лог сервера приложений доступен по адресу /user/application/globalserver.log
.
Безопасность#
В ссылку для отладчика вписан токен для подключения, который используется для авторизации в OpenVSCode Server. Следовательно, без этой ссылки подключиться к отладчику невозможно.
В будущих версиях, способ авторизации может измениться.
OpenVSCode Server работает в отдельном контейнере от имени непривилегированного пользователя, не имеет прямого доступа к секретам и файловым системам других контейнеров.
Доступ к логам и подсистеме отладки предоставляет пользователю OpenVSCode Server широкие возможности по взаимодействию с системой. В будущем они будут ограничены специальным прокси-сервером протокола отладки.