Cloud/AWS
AWS Code Build에서 Code Commit 코드 가져오기
jhbaek
2020. 3. 29. 01:20
와.. 겨우 이것 때문에 2시간을 삽질했다.
AWS Code Pipeline 을 통한 CI/CD 를 구성하는 경우
가장 쉬운 구성으로 택하는 것이
Code Commit에 올린 소스를 Code Build 에서 빌드 하는 것이다.
Code Build의 소스를 Code Commit으로 한 경우라면 문제가 안된다. 당연히 해당 소스로 부터 코드를 가져온다.
하지만.. 여러가지 Repository를 Clone해서 사용하려는 경우에는..? 어떻게 해야 하는가?
HTTPS 로 Git clone 하자니.. 아이디, 패스워드를 입력해야 하니.. 아래와 같은 에러가 난다.
fatal: could not read Username for 'https://git-codecommit.us-west-2.amazonaws.com': No such device or address
SSH로 Clone 하자니.. ssh키를 등록해야 하니.. 아래와 같은 에러가 난다.
Host key verification failed.
fatal: Could not read from remote repository.
해결법은 간단했다.
바로 buildspec.yml 파일의 env: 항목에 git-credential-helper를 yes로 하는 것.
즉 buildspec.yml의 구성을 다음과 같이 하니... 정상적으로 git clone이 되었다.
참고로 ssh:// 는 안되고 https:// 만 되더라.
version: 0.1
env:
git-credential-helper: yes
phases:
install:
commands:
- git clone https://git-codecommit.us-west-2.amazonaws.com/v1/repos/MyRepo
- cd MyRepo && ls
- git clone https://git-codecommit.us-west-2.amazonaws.com/v1/repos/MyRepo2
- cd MyRepo2 && ls
...
...
물론 CodeBuild의 Source가 애당초 CodeCommit Repo 였으면 이런 고민은 할 필요도 없다. 알아서 잘 가져온다.
아 그리고 당연한 얘기지만 CodeBuild의 Service Role이 CodeCommit에 접근 할 수 있는 IAM Policy를 갖고 있어야 한다. 그렇지 않으면 The requested URL returned error: 403 와 같은 에러가 난다.
넘 기뻐서 적어 놓는다.