새로운 사용자에 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

+ Recent posts