[AWS] Code Pipeline으로 Lambda 업로드

Code pipline 환경에서 lambda 소스만을 간단하게 말아서 올리는 구성을 만들어보도록 하겠다.

본래 Source - Build - Deploy 3가지를 다 갖추는게 보통이지만, 이 경우에는 뭐가 딱히 필요없어서 Build 과정을 없애고 Deploy에서 Code Build를 돌리려고 한다.




소스 구성

그냥 간단하게 src 디렉터리 아래에 소스코드들을 몰아뒀다.

index.js가 진입점이 되는 핸들러 함수 코드다.




파이프라인 생성

파이프라인 생성창에 진입한다.




소스 스테이지

이건 코드 저장소에서 코드를 가져오는 부분이다.
대부분은 github이나 gitlab일 것이다.

Github에서 가져오려면 깃헙으로 해서 연동시키면 되고, 다른걸 쓴다면 다른걸 가져와도 무방하다.




빌드 스테이지

여기에다가 빌드 설정을 추가해줄 것이다.

공급자를 CodeBuild로 두고 저기에 넣을 코드빌드를 생성해보자
오른쪽에 "프로젝트 생성"을 클릭하면 된다.




Code Build 생성

Code build 생성창으로 이동해서 이름을 짓고

빌드에 사용할 이미지를 선택해준다.

내 경우엔 적당히 리눅스로 깔아줬다.

그리고 저 역할에는 나중에 lambda update 권한을 줘야 한다. 따로 뭐 만들기 귀찮다면 LambdaFullAccess 정책만 연결해줘도 무방하다.

그리고 buildspec이라는 빌드 구성 파일을 설정해줘야 한다.

이 파일은 그냥 프로젝트 루트 디렉터리에 두고

이 파일명을 넣어주는게 좋다.

buildspec은 대충 이렇게만 써줘도 무방하다.

version: 0.2

phases:
  build:
    commands:
      - cd ./src && zip -r ./deploy.zip .
      - aws lambda update-function-code --function-name asset-data-inserter-dev --zip-file fileb://deploy.zip
artifacts:
  files:
    - ./deploy.zip



Code Deploy

이건 그냥 건너뛴다.
블루그린 배포같은게 필요하지도 않고, 애초에 람다는 다운타임이 없기 때문이다.

그리고 완료하면 된다.

그럼 이렇듯 단출한 파이프라인이 만들어질 것이다.

잘 올라간다.



참조