[AWS Lambda] HTTP 403 Error : url forbidden 문제 해결

2023. 11. 14. 12:30·Project/Personal & Toy
728x90

상황 

웹 스크래핑하여 데이터를 받아오는 것을 카카오톡으로 일정 시간마다 전송하기 위해 AWS Lambda를 활용하게 되었다. 

카카오톡으로 전송하는 것을 테스트 하기 전, 먼저 lambda_function.py 파일에서 IDE에서 짜놓은 코드가 제대로 동작을 하는지 확인을 거치는 과정에 에러가 발생하였다. 

 

HTTP 403 Error : url forbidden 에러 발생 

 

 

Troubleshoot HTTP 403 errors from API Gateway

When I call my Amazon API Gateway API, I get a 403 error. How do I troubleshoot 403 errors from API Gateway?

repost.aws

구글링을 통해 위 링크를 찾게 되었다. 

이를 통해, AWS Lambda 에서의 HTTP 403 응답 코드는 클라이언트가 유효한 URL에 액세스 하는 것이 금지되었음을 의미한다는 것을 알 수 있었다. 

그래서 나는 내가 넘기고 있는 url 이 유효하지 못하다는 것을 알 수 있었고 아래와 같은 시도를 통해 정확히 문제를 파악할 수 있었다. 

 

시도

1. 나는 
어떤 부분에서 에러가 발생했는지 정확히 짚고 넘어가기 위해
코드를 간소화하기위해 한 줄씩 코드를 지우거나 간결한 코드로 수정했다.

2. 그 결과, 
url ="https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=0&ie=utf8&query=서울날씨"
이 부분에서 문제가 발생했음을 알 수 있었다.
왜냐하면 url 을 간단한 "https://www.naver.com/"로 바꿔보니 에러가 발생하지 않는 것을 발견했기 때문이다. 

3. 그래서 
request로 넘기는 url의 header에 표시된 검색값들(
where=nexearch&sm=top_hty&fbm=0&ie=utf8&query=서울날씨
) 이 유효한 도메인 규격에서 벗어난 것 일 수도 있겠다 라는 가정을 하게 되었다. 

4. 가정을 바탕으로 조사한 결과, 
아래 링크를 통해 사용자 지정 도메인을 통해 도메인 매핑이 가능하다는 사실을 알게 되었다.
https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-regional-api-custom-domain-create.html

5. 하지만 나는 이를 적용하지 않았다. 
그 이유는 생각해 둔 기간의 마지노선을 넘길 것 같았고
아무래도 Python 을 이용한 웹 스크래핑 기능은 흥미로 시작한 것이기 때문에 깊게 파고들 여유가 없었다.

6. 그래서 내가 선택한 방법은
url에서 요청으로 넘기는 값들을 줄여보자
였다. 
서울날씨의 웹 스크래핑을 하려 했기 때문에 기본 네이버 웹사이트에서 날씨가 표시되는 부분을 발견했고 그곳으로 페이지를 넘겨가 보니, url이 생각보다 길지 않은 것을 발견할 수 있었다. (6번에 첨부된 링크가 해당 링크이다) 
그래서 혹시 이것은 가능할까 싶은 마음으로 적용해보니 에러가 발생하지 않음을 확인할 수 있었다.
정확한 이유는 따로 공부해봐야 겠지만, 요청하는 값이 적거나, 간결하다면 도메인 규격에 맞다는 것을 알 수 있었다.
https://weather.naver.com/today/09545101?cpName=KMA

 

 

해결

url 에서 요청으로 넘기는 값들을 줄여보자

 

마무리

기존에 넘기려던 url과 비슷한 데이터가 존재하는 url을 찾음으로써 해결할 수 있었던 문제였다.

아무래도 이 글을 보는 사람은 "이게 뭐가 해결한거야" 싶을 수도 있겠다. (죄송합니다)

 

다음번에는 도메인을 매핑하는 방법으로 해결을 시도해보고 싶다.

나의 직무 방향성과는 조금 맞지 않아서 깊게 파고들지 않았지만 뭐든 다 배우면 도움이 되고 경험이 된다고 생각한다. 

게다가 방향을 틀게 될지도 모르고 말이다.

 

또한, 이번 문제해결을 통해 꽤나 뿌듯함을 느꼈다.

평소 구글링을 했을 때 관련 문서가 모두 영어 뿐이라면 막막함을 느낄 때가 있다. 

하지만 "한번 해보자." 라는 마음가짐을 가지고 고될 것임을 감지하고 나니

영어로 된 문서도 번역기를 통해 하나하나 접근해 나갈 수 있음을 느꼈다.

728x90

'Project > Personal & Toy' 카테고리의 다른 글

[AWS Lambda] EventBridge 스케줄러를 활용한 카카오톡 API 메세지 전송  (0) 2023.11.14
[Python] 웹 스크래핑 : requests.exceptions.ConnectionError  (1) 2023.11.02
[Python] 웹 스크래핑 : 같은 태그명의 정보를 가져오는 방법  (0) 2023.11.02
'Project/Personal & Toy' 카테고리의 다른 글
  • [AWS Lambda] EventBridge 스케줄러를 활용한 카카오톡 API 메세지 전송
  • [Python] 웹 스크래핑 : requests.exceptions.ConnectionError
  • [Python] 웹 스크래핑 : 같은 태그명의 정보를 가져오는 방법
is낫널
is낫널
  • is낫널
    아직은 NULL NULL 합니다
    is낫널
  • 전체
    오늘
    어제
    • 분류 전체보기 (52)
      • Computer Science (12)
        • 운영체제 (3)
        • Java (4)
        • Spring (0)
        • 네트워크 (2)
        • 자료구조 및 알고리즘 (0)
        • 데이터베이스 (1)
      • Algorithm (10)
        • BOJ & SWEA (8)
        • Programmers (0)
        • 이론 (2)
      • Project (7)
        • Team (3)
        • Personal & Toy (4)
      • 사회인 준비생 (22)
        • SSAFY (5)
        • 이직 (1)
        • TIL (14)
      • 무작정 따라해보기 (1)
        • 블로그 (1)
  • 블로그 메뉴

    • 홈
    • 글쓰기
    • 태그
    • 방명록
    • 블로그 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    개발
    백준
    transiant
    그림자 문제
    빈 라인
    backend
    코딩테스트
    CS지식
    문자열
    백엔드
    카카오톡API
    파이썬
    LAMBDA
    비전공자
    CPU의 구성요소
    AWS
    14510 나무 높이
    it세계의 괴물들
    딩코딩코
    개발자
    HTTP
    sw적성진단
    Java
    백엔드 면접지식
    Roy Fielding
    자바
    인터럽트핸들러
    개발공부
    BOJ
    알고리즘
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
is낫널
[AWS Lambda] HTTP 403 Error : url forbidden 문제 해결
상단으로

티스토리툴바