기존의 방식에 문제점을 발견했다.
가장 핵심 기능이었던 Lambda Authorizer에 대한 문제로, 해당 기능을 사용하기 위해선 토큰을 지정된 형식으로 보내야 한다.
따라서 X-Slack-Signature 를 헤더에 담아 사용하는 Slack API에 대한 인증을 구현하기가 참 .. 까다롭다.
헤더를 바꿔주는 리졸브 함수를 앞에 추가할수도 있긴 하겠다..
어쨌든 그렇게 됬으니까, 이왕 이렇게 된거 판을 키워보자.
Step Functions
다음과 같이 State Machine을 구성했다. AWS가 참 사용하기 편리하게 만들어뒀다.
Slack Verifier에서는 ValidateFunction을 호출하고, 인증이 완료되면 반환값 Payload에 valid == true와 함께 HTTP Method, path, 기타 파라미터를 넘겨주도록 하겠다.
Result는 응답하기 위한 통합 환경으로 input의 페이로드에 대한 적절한 response를 만들어 반환할것이다.
API Gateway를 만들고, Step Functions와 통합한 후 반환값을 Result로 integrate하여 구성하도록 하겠다.
(내가 생각한) 장단점
장점 : Inline한 Payload로 함수 구성이 간결해진다. Slack Verifier가 필요한 정보만 payload로 넘겨주기 때문에 기분이 좋다.
단점 : 간단한 로직임에도 Lambda함수가 여러 건 수행된다. + Step Functions의 비용은 덤..
구현 마치고 커뮤니티에 질문해서 best practice에 대한 조언을 받아봐야겠다,, ㅎㅎ
이렇게 코드를 가져와서 내 SAM에 넣으면 된다.
뭐야.. IaC를 하려고 했는데 GUI에서 코드를 가져오면 이거 완전 제어의 역전 당한거 아닌가 ..ㅋㅋ
이렇게 내 로컬 환경으로 가져왔다. 이걸 기반으로 수정만 해주면 된다.
생각보다 내가 안다고 생각하고 맞다고 생각한 것들이 틀리는 경우가 많다. 역시 실습이 최고의 공부 방법이다..!
이대로 구현 마치고 돌아오겠습니다.
'AWS' 카테고리의 다른 글
AWS EC2, EBS: 스왑 메모리에 대한 실험과 모범 사례 (0) | 2024.04.18 |
---|---|
[AWS] AWS 사용요금을 매일 문자로 받아보기 (0) | 2023.11.30 |
[AWS] VPC Migration (0) | 2023.11.23 |
[AWS SAM] Slack API 슬랙 봇 서버리스로 마이그레이션 도전기 (3) (1) | 2023.11.15 |
[AWS SAM] Slack API 슬랙 봇 서버리스로 마이그레이션 도전기 (1) (1) | 2023.11.13 |