반응형
python으로 AWS 서비스를 사용하고 싶다면, boto3 패키지를 쓰면 됩니다.
boto3의 사용 예시 2가지를 정리해보려고 합니다.
그 전에 AWS CLI를 설정해둔 상태여야 합니다. AWS CLI 설정하는 방법은 따로 정리해두었습니다.
boto3를 설치하지 않았다면, pip install boto3
를 실행하여 설치합니다.
1) S3에 파일 넣기
import boto3
import pandas as pd
# 딕셔너리 -> DataFrame -> parquet 파일로 변환
top_tracks = {'id': ['35q0DyRH5bIXDoFGWJBjmC'], 'artist_id': '0kRAVpQhUUArA8UnYwEdeZ', 'name': ['Lonely Night'], 'popularity': [57], 'external_url': ['https://open.spotify.com/track/35q0DyRH5bIXDoFGWJBjmC']}
top_tracks = pd.DataFrame(top_tracks)
top_tracks.to_parquet('top-tracks.parquet', engine='pyarrow', compression='snappy')
s3 = boto3.resource('s3')
# s3.Object('s3 버킷이름', '버킷 내 디렉토리 경로')
object = s3.Object('sunny-spotify-artist', 'top-tracks/dt={}/top-tracks.parquet'.format(dt))
data = open('top-tracks.parquet', 'rb')
# top-tracks.parquet 파일을 s3에 업로드!
object.put(Body=data)
put 메소드 외에 delete, get 등 s3에 다양한 작업을 할 수 있습니다. (공식문서 참고)
2) lambda function 호출하기
import boto3
lambda_client = boto3.client('lambda')
payload={'artist': 'TAEYEON'}
invoke_response = lambda_client.invoke(
FunctionName = 'top_tracks',
InvocationType = 'Event',
Payload = json.dumps(payload)
)
if invoke_response['StatusCode'] not in [200, 202, 204]:
logging.error("ERROR: Invoking lmabda function: failed")
boto3를 통해 lambda function을 호출하면 StatusCode값, LogResult 값 등을 얻을 수 있습니다. (공식문서 참고)
S3, Lamda function은 AWS의 대표 서비스입니다. 어떤 서비스인지 궁금하다면 링크를 참고하세요 🙂
반응형
'Side Project > AWS와 Python으로 페이스북 챗봇 개발하기' 카테고리의 다른 글
AWS와 python으로 페이스북 챗봇 만들기 (1) - 아키텍처 (8) | 2020.09.27 |
---|---|
[AWS] 패스트캠퍼스 강의에서 사용했던 AWS 대표 서비스 8가지 (8) | 2020.09.27 |
[python] 파일 한 줄씩 읽어서 저장하기 (8) | 2020.09.27 |
[python] spotify API 호출하여 json 데이터 받아오고 처리하기 (10) | 2020.09.17 |
[python] python으로 mysql connect 하기 (8) | 2020.08.29 |
댓글