Skip to main content

1️⃣ API Gateway를 이용해 Lambda와 Github 연동하기

arc.png

✅ 실습 전 us-west-2 리전이 맞는지 확인해주세요!

Lambda 생성

먼저 Create Function을 눌러 람다를 만듭니다.

arc.png

이름은 'WebhookToDB'로 만들고 런타임을 'Python 3.13'으로 선택합니다. execution role는 기본 세팅으로 그대로 둡니다. 이후 Create Function을 누릅니다.

arc.png

API Gateway 생성

이제 API Gateway를 람다의 trigger를 추가하면서 생성합니다.

arc.png

arc.png

Create a new API를 선택하고, Security는 Open으로 진행합니다. 이후 Add를 눌러줍니다.

arc.png

이제 Lambda의 메인 화면에서 Configuration -> Triggers를 클릭하면 WebhookToDB-API가 생성된 걸 확인할 수 있습니다.

arc.png

다시 람다의 메인 화면으로 돌아가서 코드 창에 코드를 한 줄 적습니다. lambda_handler 함수 내부에 적어주시면 됩니다. print("Event: " , json.dumps(event))라고 적어둡니다. 나중에 이벤트를 받은 것을 확인하려는 용도입니다. 작성한 후 꼭 Deploy 버튼을 눌러줍니다.

arc.png

새로 생긴 API Gateway의 API endpoint를 복사합니다.

arc.png

이제 GitHub에 들어가서 원하는 Repository에 Webhook을 만듭니다. 🚨 꼭 Public Repo에 만드셔야 합니다. 나중에 GitHub API를 사용하여 comment를 작성하게 되는데 이때 작성이 안 될 수도 있습니다.

arc.png

Payload URL에 아까 복사해둔 API endpoint를 붙여 넣습니다. Content type은 JSON으로 선택하고 아래의 Let me select individual events를 선택하여 Webhook을 사용하여 받을 event를 선택합니다.

arc.png

이번 실습에서는 Issue와 Pull Request를 받습니다.

arc.png

Issue 탭에서 New Issue를 클릭하여 이슈를 생성합니다.

arc.png

다시 Webhook으로 돌아 가서 event를 잘 보냈는지 확인합니다. 체크 표시가 되어 있으면 잘 보낸 것입니다.

arc.png

어떤 이벤트를 보냈는지 Payload를 확인하고 싶다면 위의 이미지에서 파란색으로 되어 있는 주소를 클릭하고 Recent Deliveries를 클릭하면 아래와 같은 화면을 확인할 수 있습니다. opened된 이슈 event를 보냈다는 것을 볼 수 있습니다.

arc.png

이제 AWS에서도 다시 확인해봅니다. CloudWatch를 검색창에서 검색하여 들어갑니다. 왼쪽 사이드 바의 Log groups를 누르면 아까 만든 WebhookToDB 람다가 있는 것을 확인할 수 있습니다. 눌러줍니다.

arc.png

로그가 두 개가 있을텐데 아래는 람다를 새로 만들었을 때의 로그이고 위의 로그가 issue를 생성했을 때의 이벤트를 받은 로그입니다.

arc.png

아래의 이미지처럼 로그를 눌러보시면 확인할 수 있습니다.

arc.png