[AWS] python과 awscli를 사용하여 간단한 웹스크래이핑을 해보자!
STUDY NOTE
코딩 : ATOM
Amazon Management Console
AWS CLI (명령 줄 인터페이스)
Python 언어를 사용하여 코딩하고, AWS CLI로 코딩한 파일을 Amazon Management Console에 배포 후 테스트해보는 것을 목적으로 한다.
Python 코딩 및 실행
나는 내 블로그의 title 부분을 긁어 오는 것을 목표로 구글에 돌아다니는 코드를 사용해보았다.
link에 입력된 주소는 블로그 주소이며, result에 입력된 'title'은 link 내의 title 부분을 긁어 온 다는 것이다.
이와 같은 코드를 blog.py라는 파일명으로 저장한 뒤, IDLE (Python 3.6 64-bit) 을 사용하여 코드를 실행시켜 보았다.
여기에서 requests나 bs4가 없다는 오류가 뜬다면 cmd에 접속하여 pip install requests 혹은 pip install bs4를 입력하여 install 하면 된다.
IDLE 을 실행시키면 다음과 같은 코드가 나오며 Ctrl+O를 입력하여 위에서 코딩한. py 파일을 열어준다.
새 창이 뜨고 아까 입력한 코드가 뜨는데 return 은 모니터상에 표시되지 않으므로, 한눈에 보이길 원하여 제일 아래에 print() 함수를 추가하여 결괏값을 꺼내보았다.
* 실행은 F5
실행을 시키면 다음과 같은 코드가 나온다. :) !
AWS CLI를 사용하여 배포
코딩한. py 파일을. zip 파일로 압축을 해준 뒤에 배포를 시작한다.
aws configure
AWS Access Key ID : 액세스 키 ID
AWS Secret Access Key : 액세스 키 PW
Default region name [ap-northeast-2]: 리전
Default output format [None]: 데이터 유형
aws lambda create-function --function-name function 이름 --role "지정할 룰 ARN" --handler 함수 이름. lambda_handler --runtime python3.7 --zip-file fileb://.파일명. zip
위와 같은 단계를 지나게 되면 Lambda Management Console에서 배포한 함수를 볼 수가 있다.
Amazon Management Console 을 사용하여 테스트
테스트를 실행해보면 Unable to import module 'blog': No module named 'requests'라는 errorMessage가 뜨게 된다.
requests라는 import된 module을 못 찾는다는 뜻인데, import 파일을 Layers에 추가하면 해결되는 오류이다.
먼저 계층 카테고리로 들어간 후 계층 생성 버튼을 클릭한다.
requests와 BeautifulSoup가 들어가 있는 zip 파일을 업로드시켜준 뒤 생성 버튼으로 계층을 생성한다.
다시 돌아와 Designer 부분에서 Layers의 계층 추가를 선택한다.
나는 미리 만들어 두었던 계층을 선택했다.
선택 후 추가
저장한 뒤 테스트를 해보면, 위와 같이 성공적으로 테스트가 마무리된 것을 확인할 수 있다.
여러분의 댓글과 공감은 직장 노예의 엔도르핀이 됩니다 :)
댓글
댓글 쓰기