새로운 사용자에 AdministratorAccess 권한을 준다음, keypair 다운로드 받은다음 열어서 확인하고, cmd에
aws configure
쳐서 4개 나오는거 keypair 내용 복붙해서 차례차례 입력해준다.
1. upload
위에를 실행한 cmd창에서 py upload.py 로 실행하면 로컬에있던 y.png파일이 지정해준 버킷으로 올라감.
#cmd창에서 실행해봄. youa.png로 실행해봄. 버킷에 올라감.
import boto3 #aws sdk 이다
s3 = boto3.client('s3') # s3에 대한 권한및 상태를 s3(변수)에 저장
filename = 'y.png'
bucket_name = 'bucket1'
# filename : 로컬에서 올릴 파일이름 /bucketname : S3 버킷 이름 / filename : 버킷에 저장될 파일 이름.
s3.upload_file(filename, bucket_name, filename)
#버킷에 이름이 똑같은 파일 올리면 그냥 덮어쓴다 수정시간이 바뀔뿐
2. downlaod
이건 download.py (버킷에있던게 로컬로 다운로드)
import boto3
s3 = boto3.client('s3')
filename = 'y.png'
bucket_name = 'bucket1'
#다운로드할 버킷이름 / 다운로드할것 / 다운로드받을이름
s3.download_file(bucket_name,filename,filename)
3. uplaod & download lamda
로컬 cmd창 말고 람다에서 실행
(버킷1에 있던걸 다운로드받아서 버킷2에 올려줌)
import boto3
from time import time
s3_client = boto3.client('s3')
def lambda_handler(event, context):
input_bucket = event['input_bucket']
object_key = event['object_key']
output_bucket = event['output_bucket']
path ='/tmp/'+object_key #이거 아래 설명!!!!!!!!!!!!!!!!!!!!!!!!
s3_client.download_file(input_bucket, object_key, path)
s3_client.upload_file(path, output_bucket, object_key)
**** /tmp/에 로컬 파일위치를 넣어주니까 에러가 떴다. /tmp/로 하면 잘 실행된다. 그런데 tmp파일은 도대체 로컬에 있는 파일인지 람다에 있는 파일인지 헷갈리고 찾아도 보이지도않는다 https://aws.amazon.com/ko/lambda/faqs/ 이링크에서 찾아본결과 람다안에있는 비영구 디스크공간이라고한다.
Q: AWS Lambda 함수를 위해 디스크에 스크래치 공간이 필요하면 어떻게 합니까?
각 Lambda 함수에는 자체 /tmp 디렉터리에 500MB의 비영구 디스크 공간이 제공됩니다.
테스트이벤트 json파일
{
"input_bucket": "bucket1",
"object_key": "y.png",
"output_bucket": "bucket2"
}
'<Cloud> > AWS' 카테고리의 다른 글
Lambda Container 연습 (0) | 2021.08.25 |
---|---|
EC2 user data 에 start.sh (0) | 2021.05.09 |
Flask + EC2 튜토리얼 (0) | 2021.05.09 |
AWS launch templates, launch configuration, load balancing, autoscaling 초간단 개념 (0) | 2021.05.09 |
Aws acedemy Module1 (0) | 2021.03.09 |