Lambda POST 로 파라메터 받기
이전 글에서 email 보내는 lambda 함수를 이용해보겠습니다.
2023.08.25 - [AWS] - [Amazon] AWS SES 사용해서 Lambda 에서 E-mail 보내기
Lambda 함수는 있는 상태이고,
여기에 트리거로 Api Gateway 를 추가합니다.
트리거 추가
API GATEWAY 선택
다음과 같이 구성합니다.
하단에 API KEY 를 사용하는 방법이 있습니다.
생성된 API GATEWAY 를 눌러서 상세 보기로 갑니다.
메서드 생성
전 POST 가 필요하기 때문에 POST 방식을 선택했습니다. (경우에 따라 필요한 메소드를 생성하세요)
이 트리거로 Lambda 함수를 호출할 것이기 때문에 Lambda 함수를 선택합니다.
테스트를 해보고, json content 를 보내면 어떻게 받아지는지 확인을 해봅니다.
테스트를 누르고 아래와 같이 json 파라메터를 입력하고 하단에 테스트 버튼을 누릅니다.
lambda 함수에서 아래와 같이 로그를 찍어보면
다음과 같이 나옵니다.
event 가 json body 네요.
API 배포
실제로 다른 프로그램에서 api 를 호출해볼수있게 배포를 해봅니다.
URL 이 나왔습니다.
POSTMAN 에서 저 URL 로 요청을 보내봅니다.
Body 의 raw 를 선택하고 JSON 으로 파라메터를 입력합니다.
아래는 Lambda 의 print(event) 의 결과를 CloudWatch 에서 확인해 본 것입니다.
인증키 설정
위에 설정한대로 배포하면, url 과 파라메터만 알면 누구나 사용할 수 있는 api 가 됩니다.
그래서 API KEY 를 추가하고, header 에 그 키가 있는 요청만 허용하도록 하면 됩니다.
api key 를 설정해서 인증을 추가하려면,
아래에서 API 키가 필요함 false 로 되어있는 것을 연필 아이콘을 눌러서 true 로 변경해줍니다.
중요!
그리고 다시 API 배포 합니다.
POSTMAN 으로 다시 실행해보면,
권한없음 (Forbidden) 뜹니다.
API KEY 가 없으니 호출할 수 없는 것이죠.
API 키 값은, API 키 메뉴에서 확인 가능합니다.
여기에서 API 키를 복사해서
POST 요청을 보낼 때 header 에
x-api-key : 복사한api key
와 같은 key:value 로 추가합니다.
아래 스샷 참고하세요.
이렇게 하고 호출하면 성공!
이제 email 전송해주는 lambda 함수를 아무나 사용할 걱정은 안해도됩니다.
API KEY 만 잘 관리하면 되겠죠.
'AWS' 카테고리의 다른 글
[AWS] "cannot import name 'DEFAULT_CIPHERS' from 'urllib3.util.ssl_'" on AWS Lambda using a layer (0) | 2023.09.16 |
---|---|
[AWS] Cloud9 에서 Selenium 으로 크롤링하기 (Amazon Linux2) (7) | 2023.09.12 |
[Amazon] AWS SES 사용해서 Lambda 에서 E-mail 보내기 (0) | 2023.08.25 |
[AWS] Python 으로 CloudWatch Log 쓰기 (Feat. FastAPI) (1) | 2023.08.14 |
AWS - RDS - MySQL 사용해보기 (외부접속 설정) (0) | 2023.08.12 |
댓글