파이썬 Zappa를 사용하여 AWS S3와의 이미지 업로드 애플리케이션 구축하기

이미지 업로드 애플리케이션을 구축하기 위해 AWS S3를 사용하는 것은 일반적인 요구사항입니다. 이를 구현하기 위해 파이썬과 Zappa를 사용하는 방법을 알아보겠습니다.

1. 가상 환경 설정 및 필수 패키지 설치

먼저 가상 환경을 설정하고 필수 패키지를 설치해야 합니다. 다음 명령어를 사용하여 가상 환경을 생성하고 활성화합니다.

python -m venv myenv
source myenv/bin/activate

가상 환경이 활성화되면 필요한 패키지를 설치합니다. 다음 패키지들이 필요합니다.

아래 명령어를 사용하여 필수 패키지를 설치합니다.

pip install flask boto3 zappa

2. S3에 업로드할 이미지를 위한 버킷 생성

AWS Management Console을 사용하여 S3에 이미지를 업로드할 버킷을 생성합니다. 버킷의 이름을 기억해 두세요. 이후 코드에서 사용될 것입니다.

3. Flask 애플리케이션 구현

이제 Flask 애플리케이션을 구현해 보겠습니다. 다음과 같은 코드로 app.py 파일을 생성합니다.

from flask import Flask, request
import boto3

app = Flask(__name__)

@app.route('/', methods=['POST'])
def upload_image():
    if request.method == 'POST' and 'image' in request.files:
        image = request.files['image']
        
        s3 = boto3.client('s3')
        s3.upload_fileobj(image, 'your-bucket-name', image.filename)
        
        return 'Image uploaded successfully!'
    
    return 'Upload failed.'

if __name__ == '__main__':
    app.run()

위 코드에서 your-bucket-name을 생성한 S3 버킷의 이름으로 변경해야 합니다.

4. Zappa로 애플리케이션 AWS Lambda에 배포하기

이제 Zappa를 사용하여 Flask 애플리케이션을 AWS Lambda에 배포할 차례입니다. zappa_settings.json 파일을 생성하고 다음과 같이 내용을 작성합니다.

{
    "dev": {
        "app_function": "app.upload_image",
        "aws_region": "us-west-2",
        "s3_bucket": "your-bucket-name",
        "runtime": "python3.7"
    }
}

위에서 your-bucket-name을 생성한 S3 버킷의 이름으로 변경해야 합니다.

태그 없음