11import boto3
22import os
3- import json
43from PIL import Image , ImageOps
54import subprocess
65
76s3_client = boto3 .client ('s3' )
8- sqs_client = boto3 .client ('sqs' )
97thumbnail_bucket = 'snorose-public-bucket'
10- sqs_queue_url = os .environ .get ('SQS_QUEUE_URL' )
118
129IMG_EXT_LIST = ["jpg" ,"jpeg" ,"png" ,"jfif" ,"bmp" ,"webp" ]
1310VDO_EXT_LIST = ["mp4" ,"mov" ]
@@ -65,34 +62,6 @@ def delete_existing_thumbnails(bucket, prefix):
6562 Delete = {'Objects' : objects_to_delete }
6663 )
6764
68- def send_optimization_complete_message (post_id , s3_file_name , success , error_message = None ):
69- """
70- 썸네일 최적화 완료 메시지를 SQS로 전송
71- """
72- if not sqs_queue_url :
73- print ("SQS_QUEUE_URL 환경변수가 설정되지 않았습니다." )
74- return
75-
76- message = {
77- "post_id" : post_id ,
78- "s3FileName" : s3_file_name ,
79- "success" : success
80- }
81-
82- if error_message :
83- message ["errorMessage" ] = error_message
84-
85- try :
86- sqs_client .send_message (
87- QueueUrl = sqs_queue_url ,
88- MessageBody = json .dumps (message )
89- )
90- print (f"[SQS] Sent optimization complete message: { message } " )
91- except Exception as e :
92- print (f"[SQS ERROR] Failed to send optimization complete message: { e } " )
93- # SQS 전송 실패 시 Lambda 실패로 처리하여 재시도 유발 (최대 3회)
94- raise RuntimeError (f"SQS message send failed: { e } " )
95-
9665def lambda_handler (event , context ):
9766 """
9867 event 예시 구조:
@@ -148,12 +117,6 @@ def lambda_handler(event, context):
148117 create_video_thumbnail_image (download_path , upload_path )
149118 else :
150119 error_msg = f"Attachment extension { ext } unsupported: { filename } "
151- send_optimization_complete_message (
152- post_id = post_id ,
153- s3_file_name = filename ,
154- success = False ,
155- error_message = error_msg
156- )
157120 return {
158121 "statusCode" : 400 ,
159122 "body" : error_msg
@@ -174,13 +137,6 @@ def lambda_handler(event, context):
174137 }
175138 )
176139 print (f"Uploaded thumbnail to { thumbnail_bucket } /{ thumb_key } " )
177-
178- # 성공 메시지 전송
179- send_optimization_complete_message (
180- post_id = post_id ,
181- s3_file_name = filename ,
182- success = True
183- )
184140
185141 return {
186142 "statusCode" : 200 ,
@@ -189,16 +145,7 @@ def lambda_handler(event, context):
189145
190146 except Exception as e :
191147 print (f"Error processing { key } : { e } " )
192-
193- # 실패 메시지 전송
194- if filename : # 파일명이 있는 경우에만 전송
195- send_optimization_complete_message (
196- post_id = post_id ,
197- s3_file_name = filename ,
198- success = False ,
199- error_message = str (e )
200- )
201-
148+
202149 return {
203150 "statusCode" : 500 ,
204151 "body" : f"Failed to create thumbnail: { str (e )} "
0 commit comments