CodeBuild의 빌드 환경에 SessionManager로 들어 보았습니다.
3959 단어 SessionManagerCodeBuildAWS
CodeBuild도 2020년 07월부터 SessionManager를 사용해 안에 넣게 되어 있었으므로 사용해 보았습니다.
htps : // 아 ws. 아마존. 이 m / jp / 아보 t- 아 ws / u ts- w / 2020/07 / 아 ws- 코코 부이 ld의 w- 쏘 rts 론멘 ts-u-th-a ws- 세시 온 - 마나게 r /
평상시 빌드 프로젝트의 소스는 CodePipeline으로 하고 있기 때문에, 디버그용으로 개별 실행할 때는 소스를 S3 변경할 필요가 있었습니다. (후술)
하는 방법
공식 문서 에 써 있는 대로입니다만.
1. BuildProject의 서비스 역할에 권한 추가
{
"Effect": "Allow",
"Action": [
"ssmmessages:CreateControlChannel",
"ssmmessages:CreateDataChannel",
"ssmmessages:OpenControlChannel",
"ssmmessages:OpenDataChannel"
],
"Resource": "*"
}
2. 빌드 일시 정지하는 명령 (codebuild-breakpoint)을 buildspec에 추가하십시오.
phases:
build:
commands:
- codebuild-breakpoint ←追加
- python -m unittest discover tests
3. Enable session connection을 체크하여 실행
{
"Effect": "Allow",
"Action": [
"ssmmessages:CreateControlChannel",
"ssmmessages:CreateDataChannel",
"ssmmessages:OpenControlChannel",
"ssmmessages:OpenDataChannel"
],
"Resource": "*"
}
phases:
build:
commands:
- codebuild-breakpoint ←追加
- python -m unittest discover tests



(선택 사항) 소스 변경
예를 들면 평소에는 CodePipeline을 소스로 하고 있는 프로젝트로, 그대로 매니콘으로부터 실행하려고 하면 에러가 나옵니다.
CodePipeline에서 직전에 실패한 빌드 아티팩트를 S3 소스로 직접 지정하여 동일한 소스에서 실행할 수 있습니다.


4. codebuild-breakpoint 곳에서 멈추기 때문에 브라우저에서 들어간다
연결 가능한 상태가되면 Buils status의 오른쪽 하단에 Session Manager에 대한 링크가 나타나므로 클릭

codebuild-breakpoint로 멈추지 않아도 나타납니다만, 들어가려고 하면 빌드가 진행되어 끝나거나 했으므로, 멈추어 들어가는 것이 좋을까라고 생각합니다.

5. 끝나면 "codebuild-resume"에서 빌드를 재개하고 나온다
CodeBuild 측에서 본 실행 상황

로컬에서 성공하고 있었던 unittest가 실패하고 있었지만, 안으로 들어가 조사한 덕분에 원인 해명할 수 있었습니다. 했어!
비고
평소 CodePipeline에서 CodeBuild를 실행하고 있습니다만, 그 경우 「Enable session connection」에 체크를 넣는 상당한 설정을 찾을 수 없었기 때문에, CodeBuild 단독으로 움직여 안에 들어가 있습니다.
평상시부터 「codebuild-breakpoint」를 buildspec에 넣어 두고, 디버그가 필요한 때만 CodeBuild에서 「Enable session connection」 유효하게 해 실행한다. 라는 운용이 좋습니까.
※「Enable session connection」하고 있지 않은 경우는 codebuild-breakpoint 및 codebuild-resume 커멘드는 무시되는 사양.
Reference
이 문제에 관하여(CodeBuild의 빌드 환경에 SessionManager로 들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shu85t/items/cc6c3b7d22a68ba119d7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(CodeBuild의 빌드 환경에 SessionManager로 들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shu85t/items/cc6c3b7d22a68ba119d7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)