После «AWS, если» стратегия в нашей компании, это было только вопрос времени, прежде чем мы перенесем наши сборки в AWS CodeBuild и AWS CodePipine. Миграция наших устаревших трубопроводов в AWS CodeBuild оказалась довольно простым работой. По этой причине CodeBuild был легко принят нашими командами развития.
Тем не менее, в целом была одна жалоба на кодовыйБильд, устранение неисправностей проблем в buildspec.yml
было тяжело, главным образом потому, что доступ к удаленному сеансу не было несуществующему.
Это было до июля прошлого года, когда AWS Session Manager должен быть объявлен доступ для AWS CodeBuild . Странно, но кажется, что выпуск этой удивительной черты пошла за незамеченным!? Может быть, это связано с тем, что пресс-релиз, кажется, пропустит правильную семантику? Это определенно жесткий пост, чтобы найти даже для Google, если вы не используете правильные слова. Пальцы пересекли, что эта статья может привлечь больше внимания к этой функции:-)
Включая удаленный доступ, AWS Session Manager, наконец, приносит возможности отладки в AWS CodeBuild. Помимо сессионного менеджера Access, новая команда CodeBuild CodeBuild-точка останова
это ключ к этой новой функции.
На практике
Добавьте разрешение на использование AWS Session Manager AWS CodeBuild:
Добавьте точку останова на ваш
buildspec.yml.
Начать сборку для отладки
- Начните сборку, используя «Расширенные переопределения сборки»
- В разделе «Дополнительные настройки» выберите «Включить сеансовое соединение»
Запустите удаленный сеанс с помощью веб-консоли
Начните удаленный сеанс с помощью CLI
- Возьмите идентификатор сборки (AKA Build Run)
Получить
SessionTarget
используя идентификатор сборкиИМХО, в настоящее время документация для
Пакетные сборки
падает коротко. ПолучениеSessionTarget
Использование CLI может быть сложно, если вы не используете правильные настройки или если вы не используете недавнюю версию CLI. Поэтому я сделал запрос на то, чтобы изменить документацию к:Скопируйте
SessionTarget
стоимость имущества. Примечание:SessionTarget
Доступно только в случае выводаjson.
илиТаблица
Отказ Если вывод установлен натекст
ИщитеДебегательность
вместо. Если свойство отсутствует на выходе, затем обновите CLI для более поздней версии.Как только вы скопировали
SessionTarget
Значение Вы можете запустить новый удаленный сеанс, используя:Отладить свою сборку:-)
Вы все набор. Чтобы остановить сеанс отладки, просто выполнить $ codebuild - резюме
Примечание: Указанная выше политика CodeBuild требует только разрешений S3, если использование Amazon S3 для хранения ваших журналов. В случае отсутствия вы получите сеанс SSM с застрявшей подсказкой без дополнительной обратной связи. Итак, если использование S3, чтобы сохранить свои журналы, обязательно имейте эту политику правильно.
Смотрите также: Просмотр бегущей сборки в менеджере сеанса
До скорого!
Оригинал: «https://dev.to/glnds/how-to-debug-and-trace-problems-in-aws-codebuild-1cgl»