После «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»